home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
programs
/
swift45i.zip
/
SWIFTBBS.DOC
< prev
next >
Wrap
Text File
|
1992-07-24
|
215KB
|
6,502 lines
┌─ ┌──────┐
│ │ │
│ │ │
│ │ ┘
└────────┘
┌──────┐ S W I F T B B S
│ Computer Based Messaging System
│ Version 0.45i
├───────
│
│
└──────┘
│
├──────┘
│
│ │
├──────┼───────┐
│ │ │
│ Copyright 1992, by Dana Bell
─┘ FidoNet 1:3801/8
│ │ 607 Pam Drive
├──────┼──────── Tyler, TX 75703-4850
│ │
└─
│ │
└───────────────┤
│ │ │
│ │ │
│ ├──────┘
└────────┘
Contents iv
│ │ The Basic Installation 11
└───────────────┤ The User's View 22
│ │ │ The Sysop's View 46
│ │ │ Advanced SwiftBBS 55
│ ├──────┘ Utilities & Network Operation 68
└────────┘ Applications 82
┌─ ┌──────┐ Appendices 96
│ │ │ Worksheets & Notes 126
│ │ │ Index 129
│ │ ┘
└────────┘
┌────────────────────────────────────┬──────┐
│ Acknowledgments (last I read) │ ii │
└────────────────────────────────────┴──────┘
Fido, FidoNet - Tom Jennings, Fido Software
Opus-CBCS - Wynn Wagner
oMMM - Bob Hartman, Marshall Presnell, Jim Nutt
BinkleyTerm - Bit Bucket Software
ParseLst - Bob Hartman
QuickBBS, Qecho - Adam Hudson, The QuickBBS Group, Inc.,
X00 - Ray Gwinn
Lharc - Haruyasu Yoshizaki
Spaz - Dan Thomson, Andrew Farmer
┌──────────────────────┬─────┐
│ Beta honors │ iii │
└──────────────────────┴─────┘
Special thanks go to all the SwiftBBS beta testers, and
other folks who've offered useful suggestions and criticisms
for SwiftBBS software. And extra thanks going to those who
have helped in more primitive versions of SwiftBBS. These
are listed in order of acquaintance. I forgot some, ok,
many, of them, but I am keeping better records now.
Daniel Reemes Lightning Strike BBS 30566/14
Keith Cain The Legend BBS 3801/5
Butch Walker Nerd's Nook 157/3
Brandon Jones Aerospace On-Line 284/17
Iain Brown Smoked Armadillos 124/5118
Bob Gatewood Flamebusters 151/104
And finally, an inspirational note. The development of
SwiftBBS is a reflection of my preferences for the features
of two other BBS packages, QuickBBS and Opus. QuickBBS for
the quick and the customizing features, and Opus for the
simple and professional operation and appearance. I hope the
SwiftBBS similarities will be a credit to the developers of
these two. Both systems have also been imitated by
other fine programs since then, RemoteAccess and Maximus.
┌─────────────────┬─────┐
│ Contents │ iv │
└─────────────────┴─────┘
Acknowledgments . . . . . . . . . . . . . ii
Beta Honors . . . . . . . . . . . . . . .iii
Contents . . . . . . . . . . . . . . . . iv
Dedication . . . . . . . . . . . . . . . 1
Introduction
Registration (license) . . . . . . . . 4
Requirements . . . . . . . . . . . . . 6
Limitations . . . . . . . . . . . . . 9
Compatibility . . . . . . . . . . . . 9
Packaging and Source Code . . . . . . 10
The Basic Installation
Jump Start . . . . . . . . . . . . . . 11
System Setup . . . . . . . . . . . . . 12
Swifcnfg . . . . . . . . . . . . . . . 12
Message Boards . . . . . . . . . . . . 18
Getting Started . . . . . . . . . . . 20
The User's View
The logon process (file displays) . . 22
Opus style menus . . . . . . . . . . . 24
Bulletins . . . . . . . . . . . . . . 30
Messaging . . . . . . . . . . . . . . 31
Electronic mailbox . . . . . . . . . . 32
The sample message . . . . . . . . . . 34
Replies to messages . . . . . . . . . 39
Message editors . . . . . . . . . . . 42
Keystroke summary . . . . . . . . . . 44
The System Operator's View
Logon (file displays) . . . . . . . . 46
Bulletins . . . . . . . . . . . . . . 48
Questionnaires . . . . . . . . . . . . 49
Sysop Messaging . . . . . . . . . . . 51
Textfile editor . . . . . . . . . . . 52
Alt-functions . . . . . . . . . . . . 53
┌─────┐
│ v │
└─────┘
Advanced SwiftBBS
Custom menus . . . . . . . . . . . . . 55
User Maintenance . . . . . . . . . . . 60
Creating File Displays (with codes). . 62
Creating Bulletins (using Msgtxt) . . 63
Creating Questionnaires (programming). 64
Utilities & Network Operation
Network Overview . . . . . . . . . . . 68
..ftn Networks (an overview)
..Joining a network
..setting up for network operation
..The nodelist
Mail Overview . . . . . . . . . . . . 70
..Netmail/Echomail
Swifecho . . . . . . . . . . . . . . . 71
[ utilities ]
Swiflink . . . . . . . . . . . . . . . 75
Swifpack . . . . . . . . . . . . . . . 76
Msgtxt . . . . . . . . . . . . . . . . 77
Swifdump . . . . . . . . . . . . . . . 79
Applications
Networks . . . . . . . . . . . . . . . 82
Point Overview . . . . . . . . . . . . 83
BBS Overview . . . . . . . . . . . . . 84
Making the Point . . . . . . . . . . . 85
Sample BBS setup . . . . . . . . . . . 91
Appendices
SwiftBBS menu types . . . . . . . . . 96
SwiftBBS InfoCodes . . . . . . . . . . 99
SwiftBBS command language . . . . . 102
Message editor interface . . . . . . 110
SwiftBBS files . . . . . . . . . . . 112
Acronyms . . . . . . . . . . . . . . 117
Smiley faces . . . . . . . . . . . . 118
Afterward . . . . . . . . . . . . . 125
Worksheets & Notes . . . . . . . . . . 126
Index . . . . . . . . . . . . . . . . . 129
┌────────────────────┬──────┐
│ Dedication │ 1 │
└────────────────────┴──────┘
A lot of people dedicate their books to relatives,
parents, children, and more often than not, their
wives. Well, I'm going to do the same and dedicate this
to someone that has put up with all the things that
author's put up with.
She's been relatively patient with me while I was
up till after 2am looking for bugs, or "on a roll" with
some new idea. She's tolerated me when I was in a daze
thinking about something related to ints or chars, signs
or pointers, docs and control codes, and not hearing a
word she said.
So, while she'll rarely use this program and will
never read the manual, this program is dedicated to Toni
in recognition of her sacrifices and support.
Dana
┌──────────────────────────────────┐
┌───────────────┤ Registration (license) . . 4 ├─────┐
│ Introduction │ Requirements . . . . . . . 6 │ 2 │
└───────────────┤ Limitations . . . . . . . 9 ├─────┘
│ Compatibility . . . . . . 9 │
│ Packaging and Source Code 10 │
└──────────────────────────────────┘
SwiftBBS is what has commonly been referred to as a
Bulletin Board program, though I like the term "Computer
Based Messaging System" better. The use and developement of
BBS software today has gone beyond the "bulletins" of
original BBS software.
The bulletin capabilities still exist but the current
trend in telecommunications is more interactive and now
involves cross-BBS message exchanges, known as echoes, in
local, national, and international levels.
SwiftBBS and related utility software allows users to
read and enter messages to each other, and can be interfaced
with other software in order to facilitate such
international "messaging".
SwiftBBS is basically a message database. Consequently,
it may be suitable software for any environment where leaving
messages to others is needed. Applications may exist for
inter-office, intra-office, home messaging, individual, group
or business echomail conferences, and as an information or
help database. In addition to the message database, the
custom menu functions can be used as a shell.
If that's not enough, for a cost, SwiftBBS can be
customized to meet a particular need. Custom versions of
SwiftBBS will still operate with the same options as the
generic versions, but hard-coded with additional specialized
database options. On-line estimates, organizational project
listings, and various accounting reports are some
possibilities.
SwiftBBS uses and maintains QuickBBS 2.65 format control
files, data files and menus. A database format was decided
upon because of it's efficiency. Indexed database files
allow you to find messages quicker, and take up less space
than other .MSG files.
SwiftBBS also supports many of the key "types" of
QuickBBS, and adds some features that make SwiftBBS easier to
setup, simpler to maintain, and more suitable for use as a
messaging system. There are no file transfer capabilities in
the current version of SwiftBBS.
┌──────┐
│ 3 │
└──────┘
This version of SwiftBBS will support remote operation,
but is not yet ideally suited for BBS operation.
Consequently, this is still being dubbed as "pointware", for
use by point systems.
┌────────────────────┬─────┐
│ Registration │ 4 │
└────────────────────┴─────┘
SwiftBBS can be registered simply by sending me a
message either electronically (FidoNet 1:3801/8) or via
"snail" mail. If you have a BUSINESS CARD, send me two or
three of them. I collect 'em.
Dana Bell
607 Pam Drive
Tyler, TX 75703-4850
There is no registration fee and registration is not
required, but your responses and suggestions are
appreciated. Because of the many ways SwiftBBS can be
configured, batchfiles and samples of just how you did it
will be appreciated. Send copies of batch files, control
files or redirected Swifdump displays, other software
control files and associated costs for supplementary
software. Or just post the information in a message in
area SWIFTBBS.
SwiftBBS message and file echoes are also available from
Baby Blue, 1:3801/8. The SwiftBBS echo may be useful in
providing a reference to different setups, problem areas, bug
reports and development progress. An attempt will be made to
keep the echo maintained by keeping a base of useful messages.
There may also be some hints on what you can do to help
support SwiftBBS development and the supporting networks.
SWIFTBBS can be held here for weekly polls along with other
independent conferences.
... but you CAN send money if you want ...
as well as other hardware or software gifts (hint).
If you really like SwiftBBS and it works for you, and
you WANT to send money, look at what other BBS software costs
and respond accordingly.
Alternately, you can send unused hardware and software
that would help me continue with the development of this or
other software, on this or other platforms, i.e. Unix. Only
originals, though. Illegal copies of copyrighted software
will be discarded. Hardware/OS and 'C' compilers are what
I'm most interested in. If I can't use it, I'll probably
donate it to a Christian organization, school or other
benevolent organization.
┌──────┐
│ 5 │
└──────┘
Commercial use of SwiftBBS software is restricted.
SwiftBBS may be used at no cost if it's use is not purely a
chargeable item, i.e. payment received for the use of
SwiftBBS in such a way as to increase personal or corporate
income. SwiftBBS may be used by user groups and other groups
that receive a general membership fee. SwiftBBS may NOT be
used if a fee is charged to the public for the use of
SwiftBBS.
In other words, there is no restriction on the use of
SwiftBBS for private boards or private systems, but SwiftBBS
may not be used on a 'pay board', without payment of a
registration fee of at least $950.00.
When reporting problems with any of the software, please
include the file SWIFTBBS.ERR, a description of the actions
leading up to the event, and a redirected file from Swifdump
or your system configuration.
┌────────────────────┬─────┐
│ Requirements │ 6 │
└────────────────────┴─────┘
Two of the goals in development of SwiftBBS was to make
it functional on almost any system and compatible with
existing software. Basic operating system functions are
employed and memory requirements are kept to a minimum.
HARDWARE: SwiftBBS should run on all PC/XT/AT compatible
computers with at least 256K free memory and as much disk
space as you need to use for the messagebase. The
recommended CONFIG.SYS specifications include FILES=25,
BUFFERS=25.
SOFTWARE: The cost of software required to run SwiftBBS
ranges from $0 to $whatever. My personal SwiftBBS setup
costs $15 for the message editor.
ANSI.SYS is not required for SwiftBBS, but is
still required for displays for most of the utility programs
(till further notice). ANSI.SYS is a system utility that
should have been provided with your DOS. To load ANSI.SYS,
refer to your DOS manual. Alternately, a combined
AVATAR/ANSI driver such as ZAVT is highly recommended.
For BBS operation, a front-end/mailer (such as
BinkleyTerm or FrontDoor) is highly recommended, as many of
the features of SwiftBBS are intended for Network operation.
SwiftBBS may also be operated remotely in unattended mode
(see commandline options)
For any remote operation an active revision 5 fossil
driver is required. X00.SYS has always been my choice, but
others are equally adequate.
Other requirements depend on how it's being used. See
the appendices for more information on selected
implementations.
MESSAGE EDITORS: A simple internal message editor has
been added to this version, but an external message
editor is recommended. For SwiftBBS, QuickEd is my editor of
choice. In local mode, other text editors may be used,
subject to the interface restrictions noted elsewhere.
PROGRAM & CONTROL FILES: The only required files for
simple operation of SwiftBBS are the executables and
CONFIG.BBS. SWIFTBBS is the messaging program itself, and
SWIFCNFG is the configuration program from which you can
create CONFIG.BBS and other control files. If you attempt to
run SWIFTBBS without a valid CONFIG.BBS, SwiftBBS will
attempt to execute SWIFCNFG in order to create one.
┌──────┐
│ 7 │
└──────┘
TEXT FILES: Some of the files supported but not required
by SwiftBBS include the textfiles LOGO.ASC, WELCOME.A*,
NEWS.A*, and GOODBYE.A*. SwiftBBS also keeps a System log,
SYSTEM.LOG. In -opus mode, SwiftBBS will display the files
OPUSMAIN.A*, OPUSMAIL.A*, OPUSINFO.A*, OPUSETUP.A*,
OPUSNET.A*, and ABOUT.A*, when the corresponding help option
is selected. Other help files may be added as the system
develops.
┌─────┐
│ 8 │
└─────┘
MENU & DATA FILES: No menu files are required. If
SwiftBBS can't find a top menu (in the CONFIG.BBS path), it
will run in "opus" mode. The data files MSG*.BBS are
created and updated by SwiftBBS and utility programs. If
not found, they will be created. This release is beginning to
monitor and re-create corrupt messagebase files. If key
MSG*.BBS files are mis-matched or corrupt, new MSG*.BBS files
will be created.
USER FILES: SwiftBBS doesn't require USERS.BBS to
operate. When present, SwiftBBS checks users against
password, and will add new users to it, and maintain last
message read information. Without, anybody may use the
system. In order to create the user file, you can use
Swifcnfg.
OTHER REQUIREMENTS: SwiftBBS does provide some support
for NETMAIL/ECHOMAIL processing. In order to import/export
either of these you will need a supplementary program to
archive and send mail to other systems. SwiftBBS is designed
specifically with Ommm and Binkley in mind. SwiftBBS file
requests will create Binkley style .REQ and .CLO files and
Swifecho will create .OUT and .CLO files for this type
system. Swifecho will now alternately create *.PKT files
and file attach messages for use with such systems as
FrontDoor.
Swifecho and other supplementary SwiftBBS programs are
described later in this file.
┌────────────────────┬─────┐
│ Limitations │ 9 │
└────────────────────┴─────┘
Due to the development stage of SwiftBBS, there are
several limitations. The most notable one is the absence of
File transfers. This version also provides only limited
support for an -unattended mode, which monitors the modem.
Avatar support is limited to the transfer of display
codes. A local AVATAR console driver such as ZAVT is
required for proper operation. Use of such a console driver
is recommended for color systems. "Remote" operation of AVATAR
is not fully supported.
┌──────────────────────┐
│ Compatibility │
└──────────────────────┘
In one sense, SwiftBBS programs are QuickBBS 2.6x
clones, in that they create, read, and write valid QuickBBS
data file formats, included the 'counted' pascal strings.
The only incompatibility is that SwiftBBS adds a null
character to the end of each text field, which would shorten
the maximum length of text fields by a single character.
SwiftBBS maintains compatibility with QuickBBS 2.6x, to
enable you to use third party utilities written for QuickBBS,
or even use with some QuickBBS programs. While SwiftBBS is
free, other programs may not be & I do want to encourage you
to register any you regularly use.
Some notable differences, though, SwiftBBS is written
totally in C. Also, SwiftBBS programs take different
command-line arguments, and the SwiftBBS command-line is CASE
SENSITIVE. Most of the initial options must be specified in
lowercase.
┌──────────────────┬──────┐
│ Packaging │ 10 │
└──────────────────┴──────┘
SwiftBBS releases will probably come in several forms
with file-naming depending on its nature. Major SwiftBBS
releases will be named SWIFTnnn.LZH and contain all
executables, documentation, and possibly some setup files or
samples, and structure information files.
Fixes/minor releases will contain only executables and
notes. Some utilities may also be released separately. The
latest full public release is normally available for file
request from FidoNet 1:3801/8 with the magic filename
SWIFTBBS.
┌──────────────────────┐
│ Source Code │
└──────────────────────┘
It has not been decided to release full source code for
SwiftBBS. The basic code is or may be used in other on-line
database programs. Information on code operation, and code
portions can be requested. An option in some versions will
allow you to trace the flow of the program, by using -t on
the command line, to give you an idea of how the program is
organized. SwiftBBS has so far been written in 100% C.
File structures will be released with major releases in
the form of a header (*.h) file.
┌──────────────────────────────────┐
│ Jump Start . . . . . . . . 11 │
│ System Setup . . . . . . . 12 │
┌───────────────┤ Swifcnfg . . . . . . . . . 12 ├──────┐
│ Installation │ Message Boards . . . . . . 18 │ 11 │
└───────────────┤ Getting Started . . . . . 20 ├──────┘
└──────────────────────────────────┘
In order to get a quick look at SwiftBBS, you can
"jump-start" it with these steps. Before you actually start
using SwiftBBS as a 'live' system, however, you should go
through the complete installation.
┌──────────────────┐
│ Jump Start │
└──────────────────┘
If you're experienced with other Bulletin board
software, you may want to "jump start" SwiftBBS to get a
quicker look at it. Below are some simple steps for such a
jump start.
This doesn't mean SwiftBBS is properly installed. When
installing SwiftBBS for live use, be sure to read the
documentation fully and go through all the installation
screens, particularly if it'll be used for echomail.
SwiftBBS is small enough that you can try it out on a
floppy based system, but due to the slow speed of floppy disk
file access, it's not recommended for actual use.
1) Create a separate directory for SwiftBBS and
extract all the files in the archive into this directory
and/or sub-directories.
2) Create/edit an AREAS.BBS file in the QuickBBS format
for all areas you will be using. If a CONFIG.BBS file
exists, delete or rename it.
3) Now run SWIFCNFG. If no CONFIG.BBS exists when
Swifcnfg runs, it will import the areatags for all the
areas in AREAS.BBS and use them for the Board description.
All areas will also be set to echo status.
In the appropriate sections of SwiftBBS configuration,
enter the Netmail address you will be using, and system
paths, and Save setup. In the user editor, enter your name
and selected parameters. Menus are not required.
4) Run SwiftBBS with the -o option for Opus menus. For
ANSI or AVATAR, you can also use the appropriate options.
┌────────────────────┬──────┐
│ System Setup │ 12 │
└────────────────────┴──────┘
Setting up SwiftBBS is similar to setting up any new
program. Unless you intend to use a floppy drive, you will
probably want to set up a separate directory for it. If you
intend to support netmail/echomail you will also need to
maintain separate directories to control mail traffic, and
use other programs, and probably create a batch file to
control the sequence of operations. Supplementary programs
for netmail/echomail are documented elsewhere.
In any case, my preference is to put all the executables
in a single directory and include it first in the path. This
will keep the program files separate from the many data files
that may be used. The appendices will discuss the use of
directories and batch files further.
┌──────────────────┐
│ Swifcnfg │
└──────────────────┘
In order to get SwiftBBS running for the first time, you
will need to identify the system and set up message areas.
The main program for this is SWIFCNFG and the number of
options available in SWIFCNFG will depend on the version you
have. The current version will display the following
options.
╒══════ Main Menu ══════╕
│SwiftBBS configuration │▒
│User editor │▒
│Menu editor │▒
│Quit to DOS │▒
└───────────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
The SwiftBBS configuration option of SWIFCNFG
creates/edits the required file CONFIG.BBS. The arrangement
is similar to QuickBBS' QCONFIG, but does not include
protocols and other unused features. If you are using
SWIFTBBS as a point system, many of the options will not
apply. By going through each screen, you will normally be
able to identify the parameters that need to be specified.
SWIFCNFG also differs by including Menu and User
editors. The following discussion covers only the
Configuration option. The user and menu editors included in
SWIFCNFG are discussed later.
┌──────┐
│ 13 │
└──────┘
By selecting SwiftBBS Configuration, a sub-menu will be
shown similar to the following. Cursor keys will allow you
to move the cursor bar up and down to select options.
An option can also be selected by pressing the appropriate
letter. Pressing <enter> will execute the selected option.
╒═ SwiftBBS Configuration ═╕
│ 1> BBS ID & system paths │▒
│ 2> Initialization │▒
│ 3> BBS network defaults │▒
│ 4> Query options │▒
│ M> Message boards │▒
│ Q> Quit and Save │▒
│ A> Abort without saving │▒
└───────────────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
The options under "1> BBS ID & system paths" control
where SwiftBBS looks for certain types of files, and the
editor it will use. The following screen shows the options
available here. The active text is identified with a
screened entry field and the current position should be
evident by the cursor. In most screens the basic cursor keys
will allow you to navigate within the field. SwiftBBS
automatically truncates spaces from the end of the field.
SwiftBBS Configuration - BBS Identification
BBS System: Dana's Swift Site░░░░░░░░░░░░░░░░░░░░░░░
BBS Sysop: Dana L. Bell
Originline: A SwiftBBS test site
Extraspace: ^A
Textpath:
C:\POINT\SW\
Menu Path:
C:\POINT\SW\
Netpath:
C:\POINT\MAIL\
DOS command for external editor:
QUICKED.EXE
Reply Quoting string: ^A>
Type 7/15 Loading message text:
Loading, Please Wait ...
Bulletin (type 6) prompt:
Type Selection or L to List, [Enter]=Quit:
┌──────┐
│ 14 │
└──────┘
BBS System and BBS Sysop identify the board to callers
during the logon process, and in other information screens.
The Originline is appended to all echo messages along with
the specified network address for the message area.
NOTE: The Sysop name is NOT used in entering messages
for point systems. Users are always asked for their name
during logon. If you operate a single user point and want to
bypass entering your name each time, you can use the -r
option. Logon normally the first time, then logoff to create
an EXITINFO.BBS file. Subsequently, using the -r option will
read the user information from this file. Multiple user
points may also use the -#<userno> option, discussed
elsewhere, for swift logons.
The Textpath identifies the location of *.AVT, *.ANS,
and *.ASC display files. This includes normal display files
as well as the help files. The Menupath identifies the
location of your custom SwiftBBS menus. The menu editor in
Swifcnfg also uses this information to find the menus. All
paths should end with a '\'. The Netpath is where all
incoming netmail and unidentified areatag messages are put,
in .MSG format.
The "Reply Quoting string" is inserted in front of lines
quoted from a previous message. Control-A uses the initials
of the author.
The options under "2> Initialization" control the
basic commport operation. This information is also used when
using SwiftBBS in terminal mode.
SwiftBBS Configuration - Initialization
COM port # 1 Max Baud: 2400
Init tries 3 Inactive Timeout (secs): 1200
Foreground Color: 14 Background Color: 0
Modem Initialization:
|ATE1F1M0Q0V1X4C1H0S0=1S7=15|
Modem Init Response:
OK|
Modem Busy String:
ATH1░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Default Security: 1
Flags A: [--------] B: [--------] C: [--------] D: [--------]
┌──────┐
│ 15 │
└──────┘
The COM port and Max Baud are used to initialize the
modem and fossil for BBS operation and use as a terminal
program.
The Modem Initialization is what's sent to the modem
when starting in unattended or terminal mode.
The Modem Busy String is also the hangup string when
users logoff. To operate SwiftBBS as a door with the -r
option, leave this blank. This is a new feature of SwiftBBS
so change or improvements are possible.
Default Security and Flags are the settings given to
any new users during logon.
┌──────┐
│ 16 │
└──────┘
The options under "3> BBS network defaults" control how
messages areas identify themselves to the rest of the
network. In local areas, this is insignificant. In NETMAIL
and ECHOMAIL, this is important.
SwiftBBS Configuration - BBS network defaults
Zone Net Node Point
Main Node Address: 1 :30566/8 .0
Aka Address #1: 1 :3801 /8 .8
Aka Address #2: 0 :0 /0 .0
Aka Address #3: 0 :0 /0 .0
Aka Address #4: 0 :0 /0 .0
Aka Address #5: 0 :0 /0 .0
Netmail board: 5
Unless you operate as a point system or with several
networks, you will only need to use the Main Node Address for
identification.
The Main Node Address is normally used to identify
NETMAIL originating from the system. The alternate "Aka"
addresses can optionally be selected for individual messages
areas, by selecting "aka to use" in the Message board
configuration.
For point operation with a pointnet number, it's
recommended that the pointnet number be used as the Main Node
Address (for netmail) and that the point number be used as
Aka-1. Except for the netmail board, Swifcnfg message areas
default to aka-1. For BBS operation, entering the node
address in both lines will make for easier addition of
echomail areas.
The Netmail board is where all incoming netmail and
unidentified areatag messages are put.
┌──────┐
│ 17 │
└──────┘
Most of the options in "4> Query options" are either not
used or optional. The prompt for "run in monochrome", is not
required or used by SwiftBBS, but if it is not set proper for
QuickBBS's QCONFIG, that program (& probably other QuickBBS
programs) will not display properly, and could hang up the
display.
Select 'Y' or 'N' to permit any of the following
options. Where 'Y' is displayed, enabling the option is
recommended.
SwiftBBS Configuration - Query Options
Use Monochrome mode N
Direct screen write N
Check for snow N
Screen blanking N
Use fast logon N
Autologochar: N
One word names N
ANSI/Graphics Y
Check for mail Y
Use lastread ptrs Y
Exit on Net/Echo: Y
Ask home phone: N
Ask data phone: N
Ask Age: N
┌──────────────────────┬──────┐
│ Message boards │ 18 │
└──────────────────────┴──────┘
The messages in SwiftBBS are all kept in a single set of
messagebase files, indexed for quicker access. In order to
allow several areas to be used, each message is coded with a
board number, and each board can be configured with certain
parameters. Specifically, each message board can be
identified with a name and also be set for different access
levels.
There are a possible 200 message boards. In the
configuration program, navigating the message boards and
fields within each board configuration is done with the arrow
keys. In order to go to a certain board number, press <F1>
and enter the board number to edit.
Board number to edit: 2░░
SwiftBBS Configuration - Message boards
Board 1: Grace
Board Type: (0=Standard, 1=Net, 3=Echo) 0
Board Kind: (0=both, 1=priv, 2=publ, 3=RO) 0
Aka to use: (0 for primary address) 0
Use combined: N
Allow aliases: N
Read: 1 Flags A: [--------] B: [--------] C: [---
Write: 5 Flags A: [--------] B: [--------] C: [---
Sysop: 32000 Flags A: [--------] B: [--------] C: [---
Areatag: GRACE = 3801/8░░░░░░░░░░░░░
Origin line: Baby Blue HST * Gracious Discussions
<F1> Select board number (1:3801/6.0)
The name included in this screen is the name used to
identify the board to the user. This is NOT the same as the
echo areatag. The echo areatag is used and monitored by
other programs.
The configuration of each board also determines how the
message will be treated. By enabling echomail, messages can
be imported or exported to international conferences. The
Board Type is crucial for echomail processing. Setting this
to 3 for ECHO on most areas is advisable. "Aka to use"
refers to the address setting in previous screens. The
address of the Aka being used will be displayed on the bottom
line.
┌──────┐
│ 19 │
└──────┘
The combined setting determines if the message area is
included in combined reading of messages. Depending on your
messagebase, you may either want to set this on for all
areas, or set it only on general or local areas. SwiftBBS
doesn't yet have a facility for users to select a custom set
of message areas. Aliases are also not yet supported.
Read, Write and Sysop security levels and flags can be
set for each message area. By setting one or more of the
security levels, you can restrict use of a message area to
users with that security level or above. Except for general
sysop functions, these security levels are the only ones used
when operating with internal menus.
Read access to a board allows users to Read messages but
not reply. Write access allows users to Reply or Enter new
messages. Sysop access allows the user to manipulate the
message by moving, deleting, keeping, etc.
An added feature in the board configuration menu is the
ability to enter custom Origin lines, Areatag and forwarding
nodes along with the other specifications for the board.
These specifications are contained in separate files.
Swifcnfg reads a fully formatted ECHOORIG.CTL and AREAS.BBS,
but only writes back areatags and forwarding nodes. Comments
and passthrough areas are not saved. Instead, Swifcnfg saves
the "initial" files in the files AREAS.1ST and ECHOORIG.1ST.
Subsequently Swifcnfg modifications will also save the
previous file with a "BAK" extension.
When Swifcnfg creates it's own CONFIG.BBS, it uses
several defaults. The netmail board defaults to 5, all other
areas are set to echomail, public, aka 1, combined yes,
aliases no, and security levels of 1 / 5 / 32000. If an
AREAS.BBS file exists at this time, Swifcnfg will import the
areatag as the message area description.
Adjusting the other entries to conform to this will make
installation a bit easier.
┌──────────────────────┬──────┐
│ Getting Started │ 20 │
└──────────────────────┴──────┘
I don't want to over-simplify, but to start SwiftBBS,
type SwiftBBS on the command line FOLLOWED by one of the
options. Command-line options are specified by prefixing
them with a '-'. Commands may be packed or expanded, but
options that require an argument (or other specification)
must be followed by a space. For example,
Swiftbbs -l -v -mMYMAIN -a
=or=
Swiftbbs -lvmMYMAIN -a.
will run SwiftBBS in local console mode, with ANSI codes
enabled during logon, with AVATAR codes supported, and using
MYMAIN.MNU as the "top" menu.
Command line options for SwiftBBS include the following:
-a = ansi.sys active; Since SwiftBBS doesn't know if the
user is ANSI.SYS capable prior to logon, SwiftBBS starts in
ASCII mode. This will over-ride this default.
-b<baudrate> = user on-line at <baudrate>. SwiftBBS will
initialize the fossil to the specified baudrate and logon
the user on-line. Valid baudrates are 300, 1200, 2400,
4800, 9600, and 19200, and can also be indicated without
the two trailing zeros, i.e. 3, 12, 24, 48, 96.
-d = operate as door; Starts SwiftBBS normally, but does
not hang up when exiting.
-e<errorlevel> = exit at errorlevel; Exits with the specified
errorlevel. If echomail is entered the errorlevel is
reset to 5.
-i = ignores time limits for current user.
-l = local mode; Starts SwiftBBS for local operation. No
fossil initialization and use is involved. Since remote
operation is not fully supported, this is the default.
-mo = opus style messaging menu only. Use in conjunction
with the relog option for quick point system logons.
This option must be followed by a space.
-m<menuname> = Starts SwiftBBS with menuname being used as
the top menu.
┌──────┐
│ 21 │
└──────┘
-o = opus mode; Starts SwiftBBS and uses default 'opus' style
menus. These built-in menus are displayed below.
-p<com port> = use alternate communications port.
-r = relog user; Logs user from the file EXITINFO.BBS.
-t = trace mode; Displays information about key program
function calls to assist in the debugging of the program.
A little much in most cases, but might be educational.
-u = unattended. "Answers" the phone and initiates the
logon process.
-v = avatar support provided. Specifies that the local
terminal supports AVATAR. An Avatar driver is required.
-w<filename.ext> = use specified word processor/editor;
Allows you to use an alternate message editor.
-T = dumb terminal mode.
-? = ??displays usage screen;
-#<userno> = Logs user number <userno> directly from the User
file. No password checking.
The order of options specified on the command line
is significant when alternate logon options are considered.
Otherwise, all settings are made prior to normal logon.
Getting started using a messaging program may be a bit
slow if you don't have any messages to read, so some releases
may include some of this documentation, or other messages in
a starter message base (MSG*.BBS). Alternately, you can use
MSGTXT to import a series of messages from a text file.
When a USERS.BBS is present, the user is asked for a
name, searches for the same name in the USERS.BBS file, and
if found, requests a password. Use Swifcnfg to create
USERS.BBS.
When no USERS.BBS is present, the logon only asks for a
name.
┌───────────────────────────────┐
┌──────────────────────┤ Logon (file displays) . 22 ├──────┐
│ The User's View │ Opus style menus . . . . 24 │ 22 │
└──────────────────────┤ Bulletins . . . . . . . 30 ├──────┘
│ Messaging . . . . . . . 31 │
│ Electronic mailbox . . . 32 │
│ The disected message . . 34 │
│ Replies to message . . . 39 │
│ Message editors . . . . 42 │
│ Keystroke summary . . . 44 │
└───────────────────────────────┘
Many of the problems associated with BBS software are
likely to be the result of some user's action, or something
noticed by one of the users. That is one reason for the
following section. Another reason is the fact that BBS
packages don't usually come with documentation dedicated to
helping the user learn its operation.
The following is a description of SwiftBBS as the
User's will view it.
┌────────────────┐
│ Logon │
└────────────────┘
When a user calls a SwiftBBS system, he is initially
greeted with a SwiftBBS identification note, followed by a
sysop defined introduction screen identifying the BBS.
Following these displays, the user is asked for his name.
If the user's name is found in the user file, he's asked
for his password.
New users are required to complete a questionnaire
that will determine their configuration when calling the
system. During configuration, some options will allow the
user to select the (safe) default by pressing enter when
prompted. Most options can also be changed later if desired.
The video mode that the caller uses depends on the
callers local configuration. The following problems are
common to selecting the incorrect video configuration.
If garbage characters appear on the screen that include
numbers, semicolons and brackets ([35;34f....), the BBS is
sending ANSI codes and the user hasn't loaded the device
driver to interpret them. DOS comes with ANSI.SYS that must
be included in the CONFIG.SYS file. An alternate ANSI.COM is
also available for interpreting ANSI codes.
If garbage characters appear on the screen that include
punctuation, music & graphic characters, and frequent beeps,
that suggests that the BBS is sending AVATAR codes and the
user either isn't using a terminal program that supports
AVATAR or hasn't loaded a device driver for them.
┌──────┐
│ 23 │
└──────┘
AVATAR is a new, quicker method of sending remote
color/graphic codes. Some terminal programs support AVATAR
codes internally, and there are a few device drivers
available for the local console. In order to use AVATAR
codes, the sysop will need to have a console driver
installed. SwiftBBS was developed and tested with the ZAVT
combined ANSI / AVATAR console driver.
File Displays
Following the Name and Password, a welcome file may be
displayed matching the user's video mode selection. This is
customarily a graphic display of some type. As with most
textfile displays, selecting 'P' will pause and 'S' will
abort the display. Frequent callers may want to bypass these
time-consuming displays. If there is an active NEWS file,
that will be shown next.
Other options may be specified by the sysop. Mail
checking is one of the more common functions provided during
logon. With mailchecking, SwiftBBS searches the message base
for unreceived messages addressed to the user and gives the
user the option to read and/or reply to them.
┌──────────────────┬──────┐
│ Opus Menus │ 24 │
└──────────────────┴──────┘
From there, the options may be controlled by sysop
defined menus. If the sysop doesn't customize menus,
SwiftBBS will provide a set of standard menus that may be
used for most functions on the system. The use of the
standard menus is what I call opus menus, or opus style
menus, since there are usually displayed with a bar and the
initial letter of selections are highlighted similar to
Opus-CBCS systems.
From these standard menus you can have access to all
available message areas, with options for read, scan, and
enter. Other features are provided for changing setup.
Sample displays of these menus are illustrated below (minus
the color). The actual display may vary slightly for newer
releases. Depending on the display, the initial character
for each option is either highlighted or bracketed, as in
M)essages.
The MAIN Menu███████████████████████████████████████████████████
Message section Files Bulletins Network section
Setup options Information Custom menu
Quickmenus Goodbye (logoff) ?Help
SELECT:
Primary options available from The MAIN Menu include:
M)essage section -- transfers control to the message section
panel described below.
F)iles -- transfers control to the File section. File
options aren't complete and may not be active in this
release.
B)ulletins -- executes a type 12 file display for files
BULLET.*
N)etwork section -- tranfers control to the Network section
described below. Network options include node lookup and
file requests.
S)etup options -- transfers control to the Change Setup
panel described below.
I)nformation -- transfers control to the Information panel.
C)ustom menu -- accesses the QuickBBS style CUSTOM.MNU.
Q)uickmenus -- transfers (or returns) control to customized menus
beginning with the top menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
┌──────┐
│ 25 │
└──────┘
The Message Section█████████████████████████████████████████████
System has 14 messages numbered 1 to 14.
There are 9 messages in this area.
ECHO area 20 ... BabyNet
Area change Read messages Enter message Check mailbox !List active
Swiftscan Main Menu Goodbye ?Help
SELECT:
Options available from The MESSAGE Section include:
A)rea change -- displays a list of named message areas.
Selecting 0 selects combined areas. Combined settings in
CONFIG.BBS determine the areas included in combined
access. The last area used is saved at logoff.
R)ead messages -- Reads messages in the active message
area, provided the user's access levels are adequate for
the message area.
E)nter message -- Allows you to enter a new message in the
active area. If combined is selected, you will be prompted
for an area.
C)heck mailbox -- Displays a list of un-received messages
addressed to you, and gives you an option to read them.
!)List active -- Lists all boards (with or without names),
with active messages.
S)wiftscan -- Lists messages with From, To, Subject for the
active area. If selected from combined areas, the message
board will also be displayed.
M)ain Menu -- returns to the Main Menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
┌──────┐
│ 26 │
└──────┘
The File Section█████████████████████████████████████████
File list View file Download Upload
Main Menu Goodbye (logoff) ?Help
SELECT:
Options available from The File Section include:
F)ile list -- displays the file FILES.BBS in the
subdirectory FILES.
V)iew file -- prompts for and displays a file in the
subdirectory FILES.
T)ransfers -- calls the custom menu FILES.MNU. The
FILES.MNU may be used to call external file transfer
utilities.
M)ain Menu -- returns to the Main Menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
Note: The File Transfer Options are not complete in this
release, but the File Section menu is being left in tact, as
it may serve your purposes to list and allow display of a
free-form list of files.
The Network Section█████████████████████████████████████████
File Request Node search Main Menu Goodbye (logoff) ?Help
SELECT:
Options available from The Network Section include:
F)ile Request -- if enabled by the sysop, allows the user
to make a file request (FReq) through BinkleyTerm. Freqs
are also logged in the SYSTEM.LOG.
N)ode search -- searches the nodelist and displays system
information about the selected net/node number.
M)ain Menu -- returns to the Main Menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
┌──────┐
│ 27 │
└──────┘
The Information Section███████████████████████████████████████
Configuration User List About ... Version
Yell at sysop Main Menu Goodbye (logoff) ?Help
SELECT:
Options available from The Information Section include:
C)onfiguration -- displays the user's configuration.
U)serList -- displays a listing of active users, city and
last time on. The sub-menu allows you to search by Name
or Location. Enter a part of the name to limit the
display to fewer names. A global search '*' is supported
for both options to allow searching within the string.
A)bout ... -- displays a sysop's descriptive file
telling about something. Files are supplied with the
SwiftBBS release for this purpose, though the operator
may include any subject material, such as a description
of the individual system.
V)ersion -- displays the current version of SwiftBBS.
Y)ell at sysop -- prompts for a comment and activates the
local bell to get the sysop's attention.
M)ain Menu -- returns to the Main Menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
┌──────┐
│ 28 │
└──────┘
The CHANGE SETUP Section███████████████████████████████████████
Review Password City State Length More
Screen clear Full-scrn Ansi graphics V avatar User List
Quit section Yell at sysop Goodbye (logoff) ?Help
SELECT:
Options available from The Change Setup Section include:
R)eview -- (new option) displays the users current status
similar to this display.
Name: Dana Bell City: Tyler, Tx
Ansi......Y Full-scrn editor.Y Avatar.........N
More?.....Y Clearscreen......Y Screen length...22
Flags A:[-XX---X-] B:[XX-X-XXX] C:[---X--X-] D:[----X--X]
Security Level....32000
Highest message read....199
Time Left: 356
P)assword -- allows the user to change his password. This
option requires that the user enter his current password
and the new password to use.
C)ity State -- allows the user to change the city, state
information in the user file.
L)ength -- allows the user to change the display screen
length.
M)ore -- allows the user to toggle page-pausing.
S)creen clear -- allows the user to toggle screen-clearing
between messages.
F)ull-scrn edit -- toggles the use of a full screen editor.
This option requires color/graphics ANSI displays
A)nsi graphics -- toggles the use of ANSI.SYS
color/graphics display codes.
V) Avatar -- toggles the use of AVATAR.SYS color/graphics
display codes. Since this requires a local display
driver, individual systems may have this disabled.
U)serList -- displays a listing of active users, city and
last time on. The sub-menu allows you to search by Name
or Location. Enter a part of the name to limit the
display to fewer names. A global search '*' is supported
for both options to allow searching within the string.
Q)uit section -- returns to the Main menu.
Y)ell at sysop -- prompts for a comment and activates the
local bell to get the sysop's attention.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release
include this description as the help file.
┌──────┐
│ 29 │
└──────┘
One other menu that might be considered an "Opus style"
is a menu type for a message area. It is a custom option
menu "type" that provides options for Reading, Scanning, and
Entry of messages in the same manner as the Message Section
described above.
The MESSAGE Section███████████████████████████████████████
System has 37 messages numbered 1 to 37.
There are 2 messages in this area.
ECHO area 1 ... LOCAL
Read messages Enter message Swiftscan
Previous Menu Goodbye ?Help
SELECT:
Options available from Default Message Section include:
R)ead messages -- Reads messages in the active message
area, provided the user's access levels are adequate for
the message area.
E)nter message -- Allows you to enter a new message in the
active area. If combined is selected, you will be prompted
for an area.
S)wiftscan -- Lists messages with From, To, Subject for the
active area. If selected from combined areas, the message
board will also be displayed.
P)revious Menu -- returns to the previous menu.
G)oodbye -- logs off the user and terminates the program.
?)Help -- displays a sysop's help file related to this
section. Files supplied with the SwiftBBS release may
include this description as the help file.
┌─────────────────┬──────┐
│ Bulletins │ 30 │
└─────────────────┴──────┘
The bulletin option in SwiftBBS provides a simple to
use way to navigate through a series of bulletin files.
Bulletins are setup with a contents and individually numbered
bulletins. The contents should list and describe each of
the bulletin files.
When the bulletin prompt is displayed, the user must
enter a bulletin number in order to view the bulletin. If
page-pausing is enabled, display will pause at the end of
each screen and query for More. At the end of the file,
the prompt will be redisplayed.
Bulletin options are not hotkeys. You will have to
press enter after entering your choice. When a number or
character is entered, SwiftBBS looks for and displays the
associated bulletin.
Following display of any numbered bulletin, <Enter> or
'N' will increment the bulletin number, search for and
display that bulletin. Selecting 'B' will decrement (go
Back) the bulletin number, and selecting 'A' will redisplay
the current bulletin.
Selecting 'S' (for stop) or 'Q' (for quit) will exit the
bulletin number. Selecting 'L' will redisplay the bulletin
list. When the bulletin contents (list) is displayed,
<enter> will exit the bulletins option.
┌─────────────────┬──────┐
│ Messaging │ 31 │
└─────────────────┴──────┘
Messaging is a term that refers simply to reading and
writing messages to other users. It's used in contrast
to other common activities on Bulletin board systems,
such as gaming, downloads, etc. Messaging is the major
purpose of SwiftBBS, so it's important to understand it's
applications.
Most message areas or message boards fall into one of
three categories, LOCAL, NET, or ECHO. LOCAL mail is used
when users leave messages to other users on the same Bulletin
Board System. Messages may be part of a topical conference,
personal notes, and can be public or private. With the
advent of NETMAIL and ECHOMAIL and all of their advantages,
LOCAL mail is usually limited to private notes.
NET mail is a step up from LOCAL in that messages are
directed from one user to another user, generally on another
Bulletin Board System. In order to facilitate the use and
delivery of NET mail, the BBS must be a part of a Network,
such as FidoNet, SigNet or BabyNet. Because of the LD costs
inherent in using NET mail, some systems limit users' access
to NETMAIL.
┌──────┐
│ 32 │
└──────┘
When entering NET mail messages, you will
need to know the net/node number as well as the individual's
name. In some cases, you may be able to send (File Attach)
other files along with the message.
ECHO mail makes up the bulk of messaging today. ECHO
mail (or ECHOMAIL, ECHOES) is the use of shared topical
message conferences. When a message is entered into an ECHO
area, it is eventually distributed to all other boards
carrying that particular topical conference. Its use is
monumental considering that messages can be distributed
around the world in a day or two. Likewise, its misuse can
be devastating.
Because of the possibility of misuse, many BBS systems
will verify new users by voice phone or mail before granting
access to echomail areas.
┌──────────────────────┐
│ Electronic mailbox │
└──────────────────────┘
In one sense, your use of a SwiftBBS bulletin board
gives you an electronic mailbox with an option that will
check the messagebase and tell you of messages addressed to
you. These messages include only messages not previously
read. This option is available from the Message Area as
C)heck Mailbox. The sysop of the particular board may also
configure the logon procedure to automatically notify you of
unreceived messages.
Checking for new mail addressed to you ...
You have the following new mail waiting:
Message Board Message Numbers
----------------- ---------------------------
(Unknown area) 5, 7
DIARY 35
(Unknown area) 73
Read messages Now? (Y/n)
Once you read a message addressed to you it is normally
marked as "received". System operators have the option to
"un-receive" messages for reading later. In order to re-read
messages addressed to you in any area, you may select
R)ead/S)elected/M)ine from the message area prompt.
┌──────┐
│ 33 │
└──────┘
Messages displayed in SwiftBBS will usually resemble
the following sample with individual parts identified. All
of the messages in a SwiftBBS messages area are kept in a
single set of files, and numbered chronologically. The
topical area they belong to is indexed. The message number
refers to the global number, not the number of message in
the particular area.
Each message area is normally identified with a
Topical message area 'title', as "Technical" below. In
echomail transfers, the area may have an areatag, such as
TECH.
The message header shows the basic information about
the message. Often, the header is scanned over until there
is a message of interest.
In order to facilitate comprehension of an outgoing
conversation, it's traditional to quotes parts of a message
to regain users' train of thought in the discussion. The
paragraph below noted as Quote is the current user's quote of
the previous person's message. Quoted lines are identified
with a right angled bracket ( > ), often with the quoted
person's initials preceding it. Multiple arrows ( JF>>> )
refer to quotes of quotes, etc.
Often times, users may use abbreviations similar to CB
slang. For example, OTOH is 'on the other hand', BTW is 'by
the way', etc.
Since messaging can often be too impersonal, some
users may include such personal notes in parentheses, i.e.
<grin>, <hint>, etc. Smiley faces (sideways) are also used
for the same reason. Two of the most common faces looks
like this. :-) :-(
┌────────────────────┬──────┐
│ The Sample message │ 34 │
└────────────────────┴──────┘
┌──────────────────────────────── Message number
│ ┌──────────────────── Topical message area
│ │
Message #53 "Technical" Read 5 times ─────┐
Date: 5/10/92 @ 10:56 │ Message
From: Mike Hubschman ├─── Header
To: Warren Zatwarniski │
Subject: Re: Modem Oddities ─────┘
Next Reply Message is #306
^aPID SE 0.45i ───────────────── kludges
┌──────────────────────────────── Initials of person quoted
│
WZ> Does anybody know what kinda speed is ──┐
WZ> capable out of a normal 2400 bps modem ├─ Quote
WZ> without MNP or bis ????? ──┘
A good rule of thumb is divide the speed by ──┐
10. a 2400 bps rate would get 240 cps at 100% │
efficiency. Most get a little less, so 230 is │
a "normal" rate. Ditto 9600 - 960 cps is ├─ Reply
optimum, normal is 940-950. This is with │
Ymodem-g or Zmodem (moby) (Xmodem slows things │
down a lot) ──┘
WZ> I don't think that those MNP modems are
WZ> much more than a normal one eh? Mayb I can
WZ> find a used one (cheap) kicking around
WZ> someplace?..hint...hint.. :-)
│
└──────────────── Smiley face
Unfortunatly, they really jack up the price with Mnp...
Some add as much as 50% to the price... ($89 for a
2400, $129 with MNP...) Since 9600's can't work without
some error correction, they only have one price range
but add a lot for increased speed (14.4 or 16.8)
┌─────────────────────────────────────────────── Offline reader
* OLX 2.2 * He's got a magnet! Everybody stand back!
--- <──── Tearline
┌────────────────────── Originating system
┌────────────┴──────────────┐ ┌──── Network address
* Origin: SOX! BBS 821-3317 Hialeah, FL (1:135/71) ── Origin line
SEEN-BY: 117/331 170/100 400 403 600 711 ───┐
SEEN-BY: 170/800 382/1 383/300 387/823 ├─────── Seen-bys
SEEN-BY: 388/1000 393/101 3801/6 8 ───┘
^aPATH: 135/71 135/41 13/13 396/1 3801/8 ─────────── Path line
(usually hidden)
<+> Read Replies ───┐
<A>gain, <N>ext, <B>ack, <S>top? ├───── Prompt
───┘
┌──────┐
│ 35 │
└──────┘
As a means of identifying the technical nature of
particular messages, several fields are included at the end
of each message.
The Tearline (three dashes) indicates the end of the
message text, and may also show the name of the program used
to edit or pack the message. The Origin Line is needed to
identify the source of the message.
Seen-bys and Paths are used to monitor the messages
travel through the network, and may be used to detect or
prevent duplicate messages in the message base.
┌────────────────────┬──────┐
│ Reading messages │ 36 │
└────────────────────┴──────┘
Reading messages
Most message conferences deal with a particular topic
and may include discussion of several subjects related to the
topic. Consequently, most messages in topical conferences
can also be read and responded to, even if they aren't
addressed to you.
Messaging prompts are provided with Read and Swifscan
options to allow you to select specifics. Explaining the
options available is probably more difficult to explain than
to actually use. Most users will learn to use these options
intuitively. The initial prompt is:
N)ew Messages, F)orward, R)everse
S)elected, I)ndividual, Q)uit, ?)Help
Option:
Subsequent prompts will depend on the option selected.
When selecting Forward or Reverse, you will be supplied with
information about the message base and the messages within
the selected area, and then queried on the message number to
start with. In all cases, you can select to pause after each
message or not.
Active Message Board: "Combined messages
System has messages numbered 1 to 14.
Enter number to start at, [Enter]=First:
Pause after each message? (Y/n)
Selecting New messages will start in forward order
following the last message you read the previous time you
logged in. SwiftBBS maintains this information even when
messages are renumbered. SwiftBBS doesn't update the "last
message read" pointers until you logoff, and only uses the
last message number in "Forward" order.
When reading I)ndividual messages, SwiftBBS will prompt
for a message number and display the message at or following
the number entered.
Selecting ?)Help attempts to find and display a
customized file describing the entries.
┌──────┐
│ 37 │
└──────┘
During messaging reading, you may also have additional
options to enable you to back up, or follow threads.
Following each message, you can select from a submenu
resembling this:
<-> Read Previous Replies, <+> Read Replies
<A>gain, <N>ext, <B>ack, <*>non-stop, <R>eply, <S>top?
In simulating QuickBBS operation, the <N>ext option will
go to the following message if you are reading Forward, or
the subsequent message if you are reading Reverse. The
<B>ack option has the reverse effect.
┌────────────────────┬──────┐
│ Selected reading │ 38 │
└────────────────────┴──────┘
The option to read S)elected messages will prompt you
for F)rom, T)o, S)ubject, M)ine, and further give you an
option to select the starting number. The S)ubject option
will search the subject line for any occurences of the
pattern you specify in the subject line.
┌───────────────────────┬──────┐
│ Replies to messages │ 39 │
└───────────────────────┴──────┘
When replying to messages in topical conferences,
messages should be relative to the discussion and the subject
of the message area, or conference, and normally on the same
subject of the individual message you are responding to.
The <R>eply option will quote the message you are
replying to and execute the proper message editor. Using the
message editors is covered in the next section.
Reply reading options (- or +) displayed will depend on
the links the message actually has with previous/following
messages. These are also known as "threads". The submenu
during reply reading will also conform to the option you've
selected and return you to the current message following the
last message in the option. Additionally, you can switch
directions when reading a thread. When reading previous
replies, you may be able to read following replies by
selecting the proper option.
Some message areas may require higher access privileges
in order to read, enter or reply to messages in them. In
these cases, a message will be displayed to that effect.
Some of these areas may be restricted to verified users,
members of an organization, or System Operators.
If your access is suitable for message entry in a
particular area, you may want to add a message in response to
one you are reading. You can either enter a new message or
reply to the existing message. By replying to messages, your
message is added to the message-chain or thread. That allows
other users to follow the subject of the message and view
previous or subsequent replies.
When replying to messages, you will be prompted:
Quote Reply Text? (Y/n)
Replying to
F) Dana Bell
T) All
S)omebody else
C)ancel
(F/t/s/c)?
Change the subject: Testing (y/N)?
When replying to a message it's often helpful to be able
to view and/or quote parts of the message you are replying
to. This also helps other readers follow the train of
thought without restating the subject of the message again.
If you are using a supporting message editor, quoting reply
text will enable you to do that.
┌──────┐
│ 40 │
└──────┘
When quoting reply text, the current message is saved
with each line preceded by the configured quoting string.
This will normally be the original authors initials. This
text is presently only accessible from an external editor.
The addressing of your reply message can be directed to the
original author, recipient, or to any other person. When
selecting S)omebody else, you will be prompted for a new
name.
You may also select to change the subject, in order to
enter a more appropriate or meaningful description to the
subject line. Your reply will still initially be linked to
the message you are replying to, but will eventually be
"pruned" from the original thread when messages are
re-linked.
Replies to Netmail messages also allow you to change
the destination address.
┌────────────────┐
│ New messages │
└────────────────┘
When selecting to enter a NEW message in a LOCAL or
individual ECHO, you will be prompted for To: and Subject:
lines. At either prompt you can abort the message by not
entering anything and pressing enter.
When entering messages from the combined board area you
will also be prompted for a message area. Enter the
appropriate number from the Area list.
When entering messages from a NETMAIL area, you will
also be prompted for a net/node number. Enter the
appropriate net/node number in the format NNN/NNN. The
net/node number is used as a reference to the system's name,
location and phone number in the nodelist.
If QNL*.* nodelist files are found, the selected network
board's name, location, baud rate, and cost will be
displayed. For network routing of messages the net/node
number is also used to send to a centralized system for
distribution.
┌──────┐
│ 41 │
└──────┘
Currently searching in Zone 1, Net/Group 3801 ...
Enter 'L' to List Nodes, 'C' to Change Net/Group,
or 'Z' to change Zone. <Enter> quits
Enter net/node address => 3801/8
Searching nodelist index, please wait . . .
3801/8 Baby Blue Tyler TX
1-903-581-6077 baudrate: 2400, cost: 0
Is this destination correct [Y/n]?
Attach files to message? (Y/n) N
formatting ... (1:3801/8.0)
To: ........
Entering 'C' will allow you to change the currently
selected Net or Group. Entering 'L' from the net/node prompt
will display a list of the boards in the currently selected
Net or Group. Entering 'Z' will allow you to change the
currently selected zone. SwiftBBS defaults to the systems
own Zone and Net.
Currently searching in Zone 1, Net/Group 3801 ...
Enter 'L' to List Nodes, 'C' to Change Net/Group,
or 'Z' to change Zone. <Enter> quits
Enter net/node address => C
Change to what Net or Group: 1
Currently searching in Zone 1, Net/Group 1 ...
Enter 'L' to List Nodes, 'C' to Change Net/Group,
or 'Z' to change Zone. <Enter> quits
Enter net/node address => L
1/1 FidoNews FidoNews Editor
1-415-863-2739 baudrate: 2400, cost: 22
1/2 Europe Gate Portland OR
1-503-297-9145 baudrate: 2400, cost: 22
1/3 Oceania Gate Portland OR
1-503-297-9145 baudrate: 2400, cost: 22
The node search/selection interface above is also used in
the File Request function.
┌────────────────────┬──────┐
│ Message editors │ 42 │
└────────────────────┴──────┘
Messages can be entered on-line with either the internal
editor or an external editor such as QuickEd. The use of an
external message editor is primarily for color/graphics
display (ANSI) users. External editors are written by other
authors and will usually differ in the way they operate, so
they must provide their own documentation and/or on-line help
information. The interface used by SwiftBBS is described in
the appendices.
For non-ANSI users and when the individual system
doesn't provide an external editor, SwiftBBS provides a
limited internal editor. If it's not possible to load the
external editor for some reason, SwiftBBS will also fall-back
to the internal editor. The following discussion covers only
the SwiftBBS internal editor. The current version of
SwiftBBS may vary and all options displayed in the prompts
may not be active in this version. Message quoting is not
possible with the internal editor.
The internal editor begins by displaying the message
entry screen as below. To enter a message, simply begin
typing.
Enter message text now (66 lines max/72 chars per line).
Words will wrap automatically. Blank line to edit/save.
[-----------------------------------------------------]
01: Note to check the internal editor, and illustrate
02: prompts provided. A blank or space is required to
03: insert a blank line.
If you need to access one of the editing options,
press enter on a blank line, and make a selection from the
following menu. In order to enter a blank line
in the message itself, you will need to enter a space or tab.
S)ave Msg Q)uit (Abort) C)ontinue L)ist Msg
E)dit line K)ill line I)nsert line ?)Help
SELECT: C
Continue adding to message ...
[-----------------------------------------------------]
03: insert a blank line.
04:
05: Dana
06:
S)ave Msg Q)uit (Abort) C)ontinue L)ist Msg
E)dit line K)ill line I)nsert line ?)Help
SELECT: S
┌──────┐
│ 43 │
└──────┘
The options include:
S)ave Msg -- Saves the message, and adds it to the
messagebase.
Q)uit (Abort) -- Allows you to abort the message and return
to the previous menu or option.
C)ontinue -- Allows you to continue adding text to the
message, after previously stopping. The editor will
display the last line entered and allow you to continue
typing at the end of the line.
L)ist Msg -- Lists the lines of the message entered so far.
This allows you to review parts that may have scrolled
off of the screen.
E)dit -- Allows you to edit a single line in the message in
the normal entry fashion.
K)ill -- Allows you to delete one of the lines in the
message. Following this option, message lines are
renumbered.
I)nsert -- Allows you to insert one or more lines in the
message.
?)Help -- Displays the helpfile, EDITHELP.A??.
┌─────────────────────┬──────┐
│ Keystroke summary │ 44 │
└─────────────────────┴──────┘
In order to speed the user's navigation of the menus
and options, SwiftBBS uses hotkeys. Options from menus can
be executed with a single keystroke. Pressing <enter> is not
required. Also, there are some hotkeys that are available
during certain operations that will interrupt the current
option.
The hotkeys available in SwiftBBS will depend on the
file and/or option selected. The following is a brief
summary of the keys and their use.
HOTKEYS
Display files:
Most display files can be paused by pressing <P>, and
stopped by pressing <S>. If the display scrolls too fast,
press <P> to pause it and any other key to continue. If the
text being displayed doesn't interest you, press <S> to
stop it and return to the previous menu or option.
Menus:
Options from a menu can be selected before the menu is fully
displayed. When a valid selection is made, the remainder of
the menu display is aborted, and the selected action is
taken. The type 40 menu display attached to a menu will
respond in the same way.
Stop/Pause options are NOT valid during menu displays since
menu options may be <S> or <P>.
Messaging:
When a Read option is selected, the subsequent prompts for
reading are also hotkey options. During message display, you
can pause the display be selecting <P>, or interrupt the
display by selecting one of the navigational options,
<N>ext, <B>ack, <R>eply, <X>port, and <S>top.
Similar options in message threading are also hotkeys.
DEFAULTS
In addition to hotkeys, SwiftBBS has several options that
have recommended responses called defaults, built-in. When
an option has a common response, it's sometimes possible to
press <enter> to select it as the default. The default action
is usually capitalized or otherwise indicated.
Yes/no/Enter options:
Options prompted with a <Y/n> or <y/N> query will accept an
enter key to select the option with the capital letter.
┌──────┐
│ 45 │
└──────┘
The more prompt:
The "More... [Y/n]? " also has a default. When the display has
reached the designated line number count and you have More
enabled, SwiftBBS will query for a response and will accept
enter for the default <Y>.
Next:
When presented with the <A>gain, <N>ext, ... option,
pressing enter will select the <N>ext option.
New:
When presented with the <F>orward, <R>everse, <N>ew, ...
option, pressing enter will select the <N>ew option.
Message replies:
Using similar defaults when pressing enter, replies to
messages default to replying to who the message is from, No
to changing the subject, and Yes to quoting reply text.
Bulletins:
The default option depends upon the last selection. When a
numbered bulletin has previously been selected, <Enter>
increments the selection number. When a non-numbered
bulletin has previously been selected, <Enter> redisplays the
bulletin main menu. When the bulletin main menu is
displayed, <Enter> exits.
┌───────────────────────────────┐
┌──────────────────────┤ Logon (file displays). . 46 ├──────┐
│ The Sysop's View │ Bulletins . . . . . . . 48 │ 46 │
└──────────────────────┤ Questionnaires . . . . . 49 ├──────┘
│ Sysop Messaging . . . . 51 │
│ Textfile editor . . . . 52 │
│ Alt-functions . . . . . 53 │
└───────────────────────────────┘
The following discussion is meant to be a supplement to
the information given in the above "User's View" of
SwiftBBS. Some of this discussion will correspond with the
above "User's View". Becoming acquainted with SwiftBBS as a
user is a beginning to understanding the sysop's control over
user activity.
┌────────────────┐
│ Logon │
└────────────────┘
Every user on your BBS is greeted with an identification
note identifying SwiftBBS, your system name and sysop name as
recorded in the CONFIG.BBS configuration file. Following the
system id, a sysop created file LOGO.ASC is displayed.
The display files for SwiftBBS are contained in the path
designated in the Textfile path option of the configuration.
In most cases, there may be up to three varieties of the text
file, depending on the display capabilities of the user.
These differences are defined by the extension:
DISPLAY FILE PRIORITIES
Pure ASCII *.ASC files are displayed to users with no
other color/graphic capabilities; *.ANS files are displayed
to users with ANSI display capabilities; *.AVT files are
displayed to user with AVATAR display capabilities. The
display capability search is processed from the highest
(AVATAR) to the lowest (ASCII), depending on the user's
capabilities and file availability. It's up to the sysop to
make sure text files meet the display capabilities. ANSI
files should not have AVATAR codes, and vice-versa. ASCII
files should not have any display control codes.
Since a user's display is not known prior to getting
Name and password, there is only one style of LOGO file,
LOGO.ASC. If the caller is a new user, the file
NOTFOUND.ASC is displayed before asking if the name was
entered correctly. Subsequently, NEWUSER1.ASC is displayed
and the system questionnaire is started. Prior to the query
for the password, PASSWORD.A??, is displayed.
Finally, the file NEWUSER2.A?? is displayed to
complete the new user logon.
┌──────┐
│ 47 │
└──────┘
Following the caller's logon, the files WELCOME.A??,
SEC##.ASC and NEWS.A?? are displayed. The WELCOME.A?? is
customarily a graphic display of some type. The SEC##.A??
file is displayed to users with the specified ## security
level. If the user's security level is 2000, the file
SEC2000.A?? is displayed.
The sysop's menus and the user's selections will
determine other files displayed. One other standard display
file is the logoff file, GOODBYE.A?? is displayed following
the logoff command. None of these files are required, and
will be skipped (without warning) if not found.
In addition to display codes, all three styles of
textfiles may include SwiftBBS system and user control
codes. Unlike ANSI and AVATAR codes, these are interpreted
internally and sent to the caller with the ASCII text for the
coded information. The SwiftBBS control codes are prefixed
with Control-K and Control-F. A list of these codes is found
in the appendices.
All new users must answer the configuration
questionnaire before proceeding to the menus. The
configuration option for new user access level will determine
the new users access at this point. The other options are
defined by the user's answers to these questions. Most
options include a (normally safe) default.
┌────────────────┬──────┐
│ Bulletins │ 48 │
└────────────────┴──────┘
Bulletins in SwiftBBS are simply display files with a
common name. Bulletins are kept in the TxtFile path and can
be either of the supported display file formats (ASCII, ANSI,
or AVATAR). When the bulletin function is called, SwiftBBS
matches the filename specified in the data (i.e. ACCESS)
with the user's highest acceptable display format, according to
display file priorities.
When found, it is displayed along with the operator
specified prompt. This file is normally the contents file
displaying the numbers of other bulletins. Additional files
are created with the root name plus a number, i.e. for '1',
ACCESS1.A??. When the user selects '1', SwiftBBS looks for
the file that matches.
In many cases, bulletins might be displayed during the
logon procedure, possibly as a help guide to the system, it's
rules, or important bits of information.
A bulletin function is also built into opus-style menus
with a base name of BULLET. To use this feature, edit the
files named BULLET.A??, BULLET?.A??, etc.
┌────────────────────┬──────┐
│ Questionnaires │ 49 │
└────────────────────┴──────┘
Questionnaires allow sysops to create a .Q-A command
file of display, input, and output instructions to request
additional information from users. Questionnaires, answers,
and custom data files are maintained in the default
directory. The output supported by the QuickBBS standard are
text based .ASW answer files. SwiftBBS questionnaires also
support reading and/or writing of binary files, such as
databases.
The questionnaire option is a type 12 menu option, and
uses the data specified as the base command file. The
appendices contain a list of valid questionnaire commands and
syntax.
┌──────┐
│ 50 │
└──────┘
Following logon, operation is defined by one of the
menu routines. SwiftBBS provides internal menus as described
above, and new sysops are recommended to start with these.
If no TOP.MNU is found in the menus path, SwiftBBS defaults
to these menus. Alternately, opus style menus can be
selected by specifying -o on the command-line. If some logon
options are desired, sysops may also select standard menus
as a SwiftBBS type. More on custom menuing follows in the
section on utilities.
If the system operator chooses, access may be directed
by a set of menus, in which case access begins with the menu
TOP.MNU. The program Swifcnfg contains a workable menu
editor for designing these menus. A discussion of menu
editing follows in the discussion of supplemental programs.
┌────────────────────┬──────┐
│ Sysop messaging │ 51 │
└────────────────────┴──────┘
When the logged user (local or remote) has sysop access
level, several additional messaging options are available,
and are displayed on an additional display line similar to
this:
<!>Kludge, <=>Priv/Pub, <K>eep, <M>ove, <F>wd, <X>port, <D>elete?
The <!>Kludge option: Some messages may have imbedded
network control information it it. This is often
prefixed with a Ctrl-A and hidden during displays. This
option will redisplay the message showing these kludges.
The <=>Priv/Pub option allows you to toggle the
privileged status of individual messages. While only the
author and recipient can view privileged messages, all
messages are viewable by the sysop.
The <K>eep option allows the sysop to mark the message
as un-received. By doing this, the message will be displayed
during the next check for mail.
The <M>ove option allows the sysop to move individual
messages to different message areas. The option only displays
"named" message areas, but it's possible to move a message to
any area.
The <F>wd option allows the sysop to Forward (by
copying) a message to another user. Forwarded messages are
re-addressed to the person entered, and notation is added at
the beginning of the message about the original message, such
as:
Original message dated: 1 Mar 91
From: George Candy
To: Pat Darlingen
<text>
The <X>port option will write the current message to a
disk file. SwiftBBS will prompt for a filename, and will
accept device names as well, i.e. PRN for the printer. If
the file selected exists, SwiftBBS will prompt,
"FILENAME.EXT" exists, Append, Overwrite, Cancel:
The <D>elete option toggle the message deleted status,
and allows some programs to extract it during message
packing. If the message is deleted before being exported,
SwiftBBS will also delete its entry in the respective export
index (ECHOMAIL.BBS or NETMAIL.BBS), to prevent it from being
sent. Once deleted, the message will be redisplayed and will
allow you to "undelete" it.
┌───────────────────┬──────┐
│ Textfile editor │ 52 │
└───────────────────┴──────┘
A new feature for sysops that may be useful for quick
file editing is the type 70 textfile editor. The textfile
editor calls the editor specified as the message editor
with the filename in the data field as the first argument.
The editor is called with the same interface as the message
editor. You will need to make sure that your editor
supports the initial filename (QUICKED doesn't).
If the external editor isn't available or isn't being
used, at your discretion, SwiftBBS can use the internal
editor to create a NEW file with the filename specified.
This might be useful in developing an installation script
where several control files need to be created. Currently,
this feature only operates in local mode, and is
essentially still in development.
┌────────────────┬──────┐
│ Alt-functions │ 53 │
└────────────────┴──────┘
The local console provides access to several system
functions. With the .45i release a 4-page status bar has
been implemented. Among other things, the status bar will
display a list of valid Alt-functions when you press <F1>.
One of the most common Alt functions is the Alt-J shell
(or jump) to DOS. To return to SwiftBBS, you have to type
"EXIT" at the DOS prompt. When shelling to DOS, SwiftBBS
saves it's logged drive and path, and when returning to
SwiftBBS, the path is restored to what it was before the
"jump".
The Alt functions in this release include:
Alt-A = Displays local information 'A'bout the current
user, including name, page status and comment.
Alt-C = Chat mode. ESC returns to normal operation.
Alt-D = Toggles the local display when a user is
on-line.
Alt-E = Provides a local Setup option menu for quick
changes in the user's configuration. 'Q'uit returns to
normal operation.
Alt-F = Provides for editing the flags of the current
user on line.
Alt-J = Jumps to DOS.
Alt-M = (during message reading) changes the current
message's attribute bits.
Alt-S = displays and allows the sysop to change the
current user's security level.
Alt-T = toggles the trace feature. Tracing is a
debugging tool used by the author, and may not be included in
future non-beta releases.
Alt-V = toggles AVATAR support.
Alt-X (or Shift-F1) = prompts and exits SwiftBBS
without writing exit files.
Up/Dn = To increase/decrease the on-line users time.
PgUp/PgDn = page through the status bar 'pages'.
┌───────────────────────────────┐
┌──────────────────────┤ Custom menus . . . . . . . 55 ├──────┐
│ Advanced SwiftBBS │ User Maintenance . . . . . 60 │ 54 │
└──────────────────────┤ File Displays . . . . . . 62 ├──────┘
│ Bulletins (with Msgtxt) . 63 │
│ Questionnaires(programming)64 │
└───────────────────────────────┘
The following advanced options in SwiftBBS are provided
to allow system operators of Bulletin board systems to
customize their logon displays, questionnaires, and menus and
to maintain the user file for a BBS system. Point operators
may want to use custom menus, and develop database forms
for personal use.
┌────────────────────┬──────┐
│ Custom menus │ 55 │
└────────────────────┴──────┘
The ability to create custom menus and navigate from one
to the other was one of the nice things about QuickBBS and
other BBS programs. It was also a bother sometimes, since it
was a requirement to get them operational. SwiftBBS supports
QuickBBS-style menus, but the inclusion of standard (opus)
style menus is one of the nice things about SwiftBBS. It is
also possible in some cases, to mix the two styles, that is,
you can convert to standard menus from a custom menu option
and back.
Instead of creating a separate program for MENU editing,
this function has been incorporated into the SWIFCNFG
program. Menus for SwiftBBS can also be created with an
outside utility such as MenuMaster or QuickBBS' MENUEDIT.
Current menu options in SWIFCNFG's MENU editor will
allow copying, deleting, renaming and editing of SwiftBBS
menus. The main menu will resemble this display.
╒═ menu options ═╕
│Copy menu │▒
│Delete menu │▒
│Edit/create menu │▒
│Rename menu │▒
│Quit menuing │▒
└─────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Additional dialog like boxes and lists may be displayed
depending on the options selected. The following shows a
display of a menu copy routine. When asked for an initial
filename you can press enter and select the menu from a
listing of menus.
╒═ menu options ═╕
│Copy menu │▒
│Delete menu │▒ ╒═ D:\C\*.MNU═╕
│Edit/create menu │▒ │_MAIL.MNU │▒
│Rename menu │▒ │A_CAD.MNU │▒
│Quit menuing │▒ │ABLED.MNU │▒
└─────────────────┘▒ │AUTOCAD.MNU │▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │COPIED.MNU │▒
Enter name to copy from: {enter for list} │FOUR.MNU │▒
AUTOCAD.MNU │TOP.MNU │▒
Enter name to copy to: └─────────────┘▒
NEWCAD░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
┌──────┐
│ 56 │
└──────┘
The menu editing option allow you to create and edit
your menus. The menuline display at the top show the current
record. The first menuline is used for the prompt. You can
page up/page down through the lines of the menu. Pressing
the ESCape keys displays a sub-menu of edit options as
illustrated below. Be sure to save the menu before exiting.
Record number to edit: 3░
Menu: AUTOCAD.MNU Menuline: 3
Display:
< R > Read Messages ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Selection Key: R Menu Type: 23 Foreground: 14 Background: 0
Security Level: 1
Flags A: [-----X--] B: [-----X--] C: [-----X--] D: [-----X--]
Data:
73
─────────────────────────────────────────────────────────────────
╒═ edit options ═╕
1: > > AutoCAD discussions < < │Add a record │▒
2: │Delete record │▒
3: < R > Read Messages 4: 5: < - > Previous│Erase record │▒
6: < S > Scan Messages 7: 8: < * > Top Menu│Go to a record │▒
9: < P > Post a message 10: 11: < = > Logoff│Insert a record │▒
│Move records │▒
your choice: │Quit menu editing│▒
│Return to browse │▒
│Save menu │▒
│View menu │▒
└─────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
When entering the Display line, the highlight can be
toggled with a '^'. If the prompt has a highlight specified,
that will be the highlighted color, otherwise, the bright
intensity of the selected menu line will be used. This is
customarily used to indicate the key to be used when
selecting the option, i.e.
Display :
^R^)ead messages ;░░░░░░░░░░░░░░░░░░░░░░░░░░
┌──────┐
│ 57 │
└──────┘
When entering the Menu Type, you can also press <F1> and
select from a listing of menu types available at this
release. Many of the supported types are displayed. The
listing will temporarily over-write the menu display, and
when an entry is selected, it's number will be inserted in
the Menu Type display. Escape will abort as expected. The
screen will resemble the following:
Menu: AUTOCAD.MNU Menuline: 3
Display:
< R > Read Messages ;
Selection Key: R Menu Type: 23 Foreground: 14 Background: 0
Security Level: 1
Flags A: [-----X--] B: [-----X--] C: [-----X--] D: [-----X--]
Data:
73
─────────────────────────────────────────────────────────────────
╒ No. Description of SwiftBBS types Options ═╕
1: │ 0 ... Text Line (Not Considered a Command) .. None │▒
2: │ 1 ... Goto New Menu ......................... <Menu Name> │▒
3: <│ 2 ... Gosub New Menu ........................ <Menu Name> │▒
6: <│ 3 ... Return from Previous Gosub ............ None │▒
9: <│ 4 ... Clear Gosub Stack and Goto New Menu ... <Menu Name> │▒
│ 5 ... Display .ASC/.ANS File ................ <1-8 Charac │▒
your│ 6 ... Selection Menu ....................... <1-7 Charac │▒
│ 7 ... Shell Under Board and Run Program .. │▒
│ 8 ... Version Information ................... None │▒
│ 9 ... Logoff the System ..................... None │▒
│10 ... Display System Usage Graph ............ None │▒
│11 ... Page the Sysop for Chat ............... Page Prompt │▒
└───────────────────────────────────────────────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
The appendices contain a list of the menu types
supported by SwiftBBS.
SwiftBBS supports the "autoexec" menu option. In order
to force an option to be executed when a menu is loaded,
enter a Control-A in the Selection Key field. This may be
handy to run a set of options in the TOP menu before
transfering control to a "user" menu, or to display a file
as the menu display using type 40 options.
┌────────────────────┬──────┐
│ Menu planning │ 58 │
└────────────────────┴──────┘
The use of custom menus requires some careful planning
to insure the user (or yourself) has access to the functions
you want to provide, and will have a way from one menu to
another, and back. Your menu structure will also be best
understood if you have similar options in each area.
One of the easiest custom menu systems would probably
include the opus-style options, and particularly the defined
message area type 88. This type provides the user with
read/write/scan options for the specified area, as well as
return to previous menu, top menu and logoff. It is
possible to have a single menu with these options.
Custom menus can also be implemented as options from
opus-style menus. The Main Menu option Quickmenus calls the
customized top menu (defaults to "TOP.MNU") and the option
for Custom calls the custom menu "CUSTOM.MNU". When
designing these menus as options, be sure to provide a return
to opus-style menus with a type 91, if desired. An alternate
top menu can also be specified on the command line as -mMENU.
Yet another way to setup the system, might be to use
TOP.MNU as an autoexec type menu (all options Ctrl-A) and a
call to opus-style menus.
One way to look at menus is as a tree. The structure of
the menu tree should be so designed to provide a minimum
number of levels, or branches. With each branch, individual
options should be related. For example, TOP.MNU may have an
option to call PROG.MNU; PROG.MNU may have option to call
menus for any of several programming areas each with an
option to read, scan and enter messages, and possibly
bulletins in the area.
┌──────┐
│ 59 │
└──────┘
┌────────────────────┬──────┐
│ User maintenance │ 60 │
└────────────────────┴──────┘
User information is contained in the file USERS.BBS.
This file is created and edited by the program Swifcnfg, and
new users are added to this file following their first logon.
USERS.BBS contains most of the configuration information
requested from the user, options set by the user in the Setup
options, and defaults set in other areas of SWIFCNFG. User
information not included here (lastread pointers for each
area, combined settings) are indexed in this file. Related
control files are determine other items in a user's
configuration or active logon.
As a part of the logon process, SwiftBBS uses the user's
access level, and looks in the file LIMITS.CTL, to assign the
user the amount of time specified for that security level.
The LIMITS.CTL file has the format: <security level> <time
allowed> If the file or the individual user's security level
is not found, the default is 60 minutes.
The User editor option in Swifcnfg allows you to edit
the basic fields of existing users. The editor is
self-packing and self-sorting. When a user is deleted, his
entry is not saved when exiting Swifcnfg.
The following display illustrates the User Editor screen
with the user options menu displayed. Currently, the Sort
option sorts by First name only.
User number to edit: 9░░
SwiftBBS Utilities - User Editor
User number 2 of 12
Name: Henry Bell Password: scramble
City: ░░░░░░░░░░░░░░░░░░░░░░░░░ ╒═ user options═╕
Voice phone: 444-444-4444 │Add User │▒
Security level: 100 │Deletion │▒
Flags A: [--------] B: [--------] C: [------│Clear User │▒
Ansi codes: N Avatar codes: N Ful│Goto User │▒
More... N Screen length: 0 │List Users │▒
High Message Read: 2486 │Sort Users │▒
│Quit │▒
└───────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
When selecting to Goto a User, a scrollable list of
users will be displayed. Using the cursor keys you can
select the user you want to edit. The following is a basic
display of what would appear in this case.
┌──────┐
│ 61 │
└──────┘
SwiftBBS Utilities - User Editor
User number 2 of 12
Name: Henry Bell Password: scramble
City: ░░░░░░░░░░░░░░░░░░░░░░░░░ ╒═ user options═╕
Voice phone: 444-444-4444 ╒════ user selection════╕ │▒
Security level: 100 │Dana Bell │▒│▒
Flags A: [--------] B: [--------] C│David Dunn │▒│▒
Ansi codes: N Avatar codes: │Danny Boy │▒│▒
More... N Screen length:│Danny Michaels │▒│▒
High Message Read: 2486 │Dave Cohen │▒│▒
│David Kissinger │▒│▒
│David Eliag │▒┘▒
│David Jude │▒▒▒
│David Davidson │▒
└───────────────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
┌──────┐
│ 62 │
└──────┘
The USERS.BBS file is actually optional with SwiftBBS
and will default to ANSI, CLS, & More options. While
USERS.BBS is optional, there are good reasons to keep one.
If you operate as a single user on a point system, you may
want to have a user file so that SwiftBBS can update &
maintain lastread pointers, use it for customized displays
options, or to provide some security.
If operating as a single user on a point, the -#
option will allow you to make quick logons without giving
up on lastread information.
┌────────────────┐
│ File displays │
└────────────────┘
Several files are displayed by default at various
points in the execution of the program. In order to create
these files, you will need to use your own text editor. A
listing of files displayed is contained and described in
the appendices.
┌────────────────────┬──────┐
│ Bulletin creation │ 63 │
└────────────────────┴──────┘
Bulletins in SwiftBBS are contained in file sets with
a common base name. The base name itself is commonly the
menu file. Subsequent files have a number appended that
corresponds to the "menu option" selected. In order to
provide rapid navigation through bulletins without hotkeys,
options are included to allow redisplay of the same file,
incrementing the file number and display of the next or
last file, etc.
In SwiftBBS opus style menus, BULLET is the default
bulletin base name, thus the files would be named,
BULLET.???, BULLET1.???, BULLET2.???, etc.
Also useful as an aid to development of bulletin files
are some options of MSGTXT, that will convert a long text
file into several bulletin files. See the utilities section
for detailed documentation of MSGTXT. The format for the
bulletin feature is
MSGTXT -b<bulletin> -m<messagefile> -[options]
-b = Board Number or bulletin basename;
-m = Message file;
-l = maximum lines per message;
-p = page number to start numbering;
-c = character number to break pages at;
-i = ignore page breaks;
For bulletins, MSGTXT requires you to specify a
non-numberic bulletin base filename and a filename for the
textfile being imported.
The formatting of files into bulletins is controlled by
the number of lines and location of formfeed or alternate
page break characters. When a page break character is
found, a new bulletin is started. A new bulletin is also
started if MSGTXT encounters 49 linefeeds. The linefeed
count can be altered by the -l commandline switch. To
import messages controlled only be page break characters,
you may be able to set the linefeed count above the expected
linecount (i.e. -l999) for any page.
The -p page number can be used to identify each
bulletin. This is particularly useful if you want to create
bulletins from a document with a table of contents, followed
by numbered (& formfeed separated) pages. For example, if
MY.TXT has the contents as one page followed by numbered
pages 1-5, you can create BULLET.ASC, BULLET1.ASC,,,
BULLET5.ASC with the command:
MSGTXT -mMY.TXT -bBULLET -p0
┌──────────────────────────┬──────┐
│ Questionnaire programs │ 64 │
└──────────────────────────┴──────┘
The 0.42c release introduces the first full set of
questionnaire options. The questionnaire is a type 12 menu
option that operates similar to that in QuickBBS, with a few
simplifications and a lot of additional features.
A SwiftBBS questionnaire is specified by including the
question file in the data area. The questionnaire file is a
plain ASCII text file ending with a .Q-A extension, and
containing commands as specified in the command language.
Answers can be output (appended) to an answer file with the
.ASW extension, or added to a database using the binary file
I/O options.
FORMAT
All commands must appear on separate lines, though they
may be indented with spaces. The amount of space between
parameters is also relatively insignificant.
While it is being encouraged to maintain the
capitalization of Keywords and variables, Keyword matching
and variables are not case sensitive. PostInfo and POSTINFO
have the same effect with SwiftBBS. Likewise, Var1, VAR1,
and var1 will all refer to the same variable.
RESERVED WORDS
Two types of reserved words are included. Keywords are
used to give commands to the program. Other keywords are
internal variables, that may be displayed or written to
file. You cannot change the values contained in these
variables. Some of the most common ones are User, System,
Security, Ansi, and NewLine.
STANDARD PRACTICE
In keeping with some standard practices, Questionnaire
files normally start off with a PostInfo command to write
the user's name, and current time to the ASW answer file.
This acts also as a delimiter between individuals answering
the questionnaire.
Most questionnaires will display, ask questions and
OutputAnswer to the .ASW file. This is strictly a text
based answer file with only newline delimiting.
┌──────┐
│ 65 │
└──────┘
Since questionnaires are commonly used for logon of new
users, a userflag is often used to mark the user when the
questionnaire has been answered, hence a SetFlag command may
appear near the end of the questionnaire.
In some cases an affirmative answer may indicate more
information may be desired, thus the If/Endif construct is
useful. For such structures, indentions are also commonly
used, particularly in real-life programming.
The following is a crude example of a questionnaire
that might be constructed. Numerous blocks such as this
might be used in a real questionnaire.
PostInfo
Display "|Welcome to my BBS"
Display "|Do you play Chess"
GetChoices YN Chess
If Chess = "Y"
SetFlag D1 ON
Display "What is your rating? OR How good are you?"
Ask 20 HowGood
Endif
SetFlag A1 ON
Quit
With the addition binary file options, questionnaires
can also be used to build and maintain database files for
display or further processing.
The following is a somewhat more complex database
program for getting information about other BBS systems.
This represents a little more of the programmers style,
with variables declared prior to use, and more practical
display management.
Several test runs were made on the output to assure the
display was properly formatted. While the SwiftBBS
questionnaire command language is only utilitarian,
anticipating and limiting the input helps control against the
unexpected, and insures the database is in fact, readable.
The writes to the disk file are grouped at the end of
the file to guard against incomplete (& misaligned) entries
to the file.
┌──────┐
│ 66 │
└──────┘
Variable 40 Name
Variable 15 Phone
Variable 15 Baud
Variable 15 Hours
Variable 25 Node
Variable 65 ANotes
Variable 65 BNotes
PostInfo
ClearScreen
Display " Do you want to view the current BBS list? "
GetChoice YN View
If View = "Y"
Display " Do you want details on each BBS listed? "
GetChoice YN Details
ClearScreen
GetFile BBSLIST.DAT
Display "BBS Name Phone baud hrs nn "
Display "|========================= ============== ========= ========= ==="
Repeat 32000
Read Name
Read Phone
Read Baud
Read Hours
Read Node
Read ANotes
Read BNotes
ChangeColor 12 0
Display "|"
TabDisplay 26 Name
TabDisplay 15 Phone
TabDisplay 10 baud
TabDisplay 10 hours
TabDisplay 10 Node
If Details = "Y"
ChangeColor 6 0
Display "| " ANotes
Display "| " BNotes
Endif
EndRepeat
EndIf
If Security = "100"
Remark : Only sysops can add to the list
ChangeColor 13 0
Display "| Do you want to add a BBS to this list? "
GetChoice YN Add
If Add = "Y"
ClearScreen
ChangeColor 14 0
Display " Enter the Name of the Board: "
Ask 40 Name
┌──────┐
│ 67 │
└──────┘
Display " Enter the complete phone number: "
Ask 30 Phone
Display " Enter the baud rates accepted: "
Ask 40 Baud
Display " What hours is this board operated: "
Ask 40 Hours
Display " Enter your current Net:Node Number: "
Ask 30 Node
SetFlag D8 ON
OutputAnswer "BBS Name: " Name
OutputAnswer "PHONE: " Phone
OutputAnswer "BAUD: " Baud
OutputAnswer "HOURS: " Hours
OutputAnswer "NET/NODE: " Node
ChangeColor 14 0
Display " Describe your bulletin board in the following 2 lines|"
Display " or press enter twice|"
Display " "
Ask 65 ANotes
OutputAnswer "BBS Notes " ANotes
Display " "
Ask 65 BNotes
OutputAnswer "BBS Notes " BNotes
AppendFile BBSLIST.DAT
Write Name
Write Phone
Write Baud
Write Hours
Write Node
Write ANotes
Write BNotes
Endif
Endif
ChangeColor 6 0
Display "|| Press your enter key to return to SwiftBBS|"
Quit
┌───────────────────────────────┐
│ Network Overview . . . . 68 │
┌──────────────────────┤ Mail Overview . . . . 70 ├──────┐
│ Utilities/Networks │ Swifecho . . . . . . . . 71 │ 68 │
└──────────────────────┤ Swiflink . . . . . . . . 75 ├──────┘
│ Swifpack . . . . . . . . 76 │
│ Msgtxt . . . . . . . . . 77 │
│ Swifdump . . . . . . . . 79 │
└───────────────────────────────┘
The SWIFTBBS package of programs is designed for use in
a FidoNet Technology Network, and meets many of the standards
set up in published FidoNet Technical Specifications. This
section describes some of the ways you may need to interface
SwiftBBS software with SwiftBBS and third-party utilities.
The SwiftBBS utilities provide system operators with
some messagebase maintenance, user maintenance, bulletins
creation, menu editing, some diagnostic displays and
netmail/echomail processing. Some of the utilities included
(Swifecho, etc) provide only basic support for FidoNet
operation.
If your needs exceed the functions provided, I encourage
you to acquire one of the more advanced programs and pay to
register the product selected. While you are free to use
SwiftBBS and the utilities individually or jointly for your
non-commercial interests, you cannot take the same freedom
with other software.
┌───────────────────┬──────┐
│ Network Overview │ <> │
└───────────────────┴──────┘
In computer interfacing there are a wide variety of
networks associated with different software and hardware
connections. As one example, in many offices, individual
systems are networked with cabling and LAN software.
FidoNet and FidoNet compatible systems are networked
through dial phone systems and FidoNet Technology mailer
software, such as FrontDoor or Binkley. One of the primary
purposes of networking is to facilitate transfer of NET and
ECHOmail. Access to individual systems (or nodes)
participating in such a network is determined by their
listing in a Nodelist.
A detailed explanation of networking is beyond the scope
of this manual. In order to understand more about netmail
and echomail, you may want to discuss it with another sysop.
┌──────┐
│ 69 │
└──────┘
In addition to the utilities included in the SwiftBBS
package and discussed below, you will need nodelist files and
a nodelist compiler. You will also need to gain membership
in a network and be assigned a net/node number to operate
within any network environment. In the case of point
systems, you will need to find a sponsoring BBS system and
join the associated POINTnet.
THE NODELIST
The nodelist identifies each board with an address. The
basic format of the address includes a net number and node
number in the format net/node. Addressing may also be
extended to include zone, point, or domain, in the form
zone:net/node.point@domain.
SwiftBBS supports use of the QNL*.BBS (QuickBBS) style
nodelist but provides no means of compiling or editing one.
Personal preference of nodelist compiler is PARSELST, which
is also available for use at no charge. Read the
documentation for the selected compiler for more information
on its use. The SwiftBBS nodelist files must be installed in
the same directory as the messagebase.
┌───────────────────┬──────┐
│ Mail Overview │ 70 │
└───────────────────┴──────┘
SwiftBBS software supports ECHOmail and both routed and
direct NETmail. Use of either of these requires interfacing
with other programs. One of these programs is an echomail
processing program that must extract copies of messages and
prepare them for distribution to other BBS systems and add
received messages to the messagebase. The SwiftBBS echomail
processing program is Swifecho. Swifecho handles both
echomail and netmail but does not support echomail
forwarding. Swifecho can only be used in an end-node or
point system.
ECHOmail makes up the bulk of messaging today.
ECHOmail (or ECHOMAIL, ECHOES) is the use of topical message
conferences that are shared with other bulletin boards,
including other types of personal computers (Mac, Amiga,
Unix). When a message is entered into an ECHO area on one
participating system, echomail processing software extracts
and sends ("echoes") it to all other boards linked into that
particular topical conference.
NETmail is directed from one user to another user,
generally on another Bulletin Board System. NET mail can
either be sent direct or routed through another central
system. When entering NET mail messages, you will need to
know the net/node number as well as the individual's name.
In some cases, you may be able to send (File Attach) other
files along with the message.
Outbound netmail can be configured for any of several
message areas by selecting the netmail board type.
┌────────────┬──────┐
│ Swifecho │ 71 │
└────────────┴──────┘
Swifecho is a mini-echomail processing program. It is
mini- because it will only process incoming or outgoing.
Swifecho will NOT forward messages, and "at this writing" has
no dupe-detection and provides no archiving or extraction
functions (recommend SPAZ). Swifecho is only suitable for
end-node or point operation.
Swifecho operation is determined by a control file,
SWIFECHO.CTL, and an area file, AREAS.BBS, and command-line
options. The control will follow the same format as the
control file for Qecho. Following is an example. Semicolons
will mark any line as a comment.
; Swifecho Control File for Blue Point BBS
;
Node 30566/8
Aka 3801/15
Strip 30566
MailPath C:\POINT\MAIL\
FilesPath C:\POINT\FILES\
OutBoundPath C:\POINT\OUTBOUND\
QuickBBSPath C:\POINT\SW\
Some of the fields are not yet supported, but will be
added in future releases, and may be used by other software.
The primary fields in use in the current version of Swifecho
include:
Node -- specifies your network address. This is the
information that is added to SEEN-BY and PATH statements
in echomail. If you are a point system with a pointnet
number your boss may have to strip your pointnet number.
MailPath -- specifies the location of incoming mail packets.
Swifecho looks here first for mail. If this is specified,
then all incoming netmail is put here in *.MSG format,
when unpacking new packets. Otherwise, Netmail is tossed into
the Netmail board at the same time echomail is processed.
FilesPath -- specifies the location of incoming mail. After
processing messages in MailPath, Swifecho looks here for
the *.PKT files.
QuickBBSPath -- specifies the location of any remaining
inbound mail packets.
OutboundPath -- specifies the location of outgoing *.OUT
files.
Strip -- specifies your private pointnet number if you need to
strip these from your seen-bys. Your bossnode should be able
to tell you this. This is for points only.
Echomail areas are identified by areatag names, and the
file AREAS.BBS is used to map incoming messages to the proper
message area and send outgoing messages to designated nodes.
┌──────┐
│ 72 │
└──────┘
The format of AREAS.BBS is listed below. Swifecho is more
forgiving than QECHO on the spacing format of the file, but
to keep on the good sides of QECHO, I recommend the format:
<Board No><1 space><areatag name><1 tab><forwarding nodes>
Swifecho isn't particular about the amount of white space
between fields.
1 LOCAL 3801/8
10 NETMAIL 3801/8
52 80XXX 3801/8
53 C_ECHO 3801/8
54 PASCAL 3801/8
The AREAS.BBS file may be created with any text editor,
or it may be created through Swifcnfg's message board
configuration option.
The options for SWIFECHO are:
-e = extract/export new ECHOmail;
-f<msg_num> = rescan starting number;
-i<filename.ext> = log inbound echomail activity;
-m = process *.MSG netmail in MailPath.
-n = extract/export new NETmail;
-o = log outbound echomail activity (SWIFECHO.LOG);
-r<areatag> = rescan <areatag>
-s<net/node> = send to <node>
-t = trace;
-u = unpack new packets and toss echomail;
-#<msg_num> = individual message export;
-F = create *.PKT and FD file attach message;
-I = ignore diskspace when tossing;
-R = Repack packets when tossing;
The -u, -i, and -m are options used to toss new mail
into the SwiftBBS message base. The -u option tells Swifecho
to process incoming packets and toss the messages into the
SwiftBBS message base. The -i tells Swifecho to create an
echomail import log for use with Swiflink. This speeds up
Swiflink processing if mail is received in only a few of the
areas.
Since some software may need to write MSG files & have
other processes (Areafix, etc) read MSG files, If a MailPath
is specified in Swifecho.ctl, netmail messages & messages for
unknown areas are put in this directory, named numerically.
The -m option tells Swifecho to process *.MSG files in the
MailPath. If no MailPath is specified, these messages are
automatically tossed into the netmail area without delay.
┌──────┐
│ 73 │
└──────┘
The -R option is used with the -u unpack option. This
forces Swifecho to repack FidoNet style PKT files. This is
useful for tossing packets with minimal diskspace. When
there is not enough space to toss all the messages from a
packet, Swifecho will toss as many as possible and then
repack the file, in effect "deleting" the messages already
tossed from the packet. Note, however, this takes time.
The new default for Swifecho is to unpack mail only when
there is probably enough space to put all the messages into
the messagebase. The -I option is used to ignore diskspace
when tossing packets. This will force Swifecho to toss as
many as possible from the packet, and ignore (delete) the
rest.
The -e, -n, and -o are options used to extract mail from
the SwiftBBS message base and export them to other boards.
When new messages are entered into the messagebase, SwiftBBS
creates an entry in ECHOMAIL.BBS for new echomail and an
entry in NETMAIL.BBS for new netmail. The -e and -n options
instruct Swifecho to export "unmoved" messages listed in
ECHOMAIL.BBS (for -e) or NETMAIL.BBS (for -n) and then
deletes it.
The -o options causes Swifecho to keep a log of echomail
exported from the system. The file SWIFECHO.LOG lists the
areatag for each echo-message. This may be used to monitor
the activity of these message areas.
Messages entered in any board specified as NETmail, will
be exported accordingly. If the board is not listed in
AREAS.BBS, or there isn't a forwarding address in the
AREAS.BBS for that board, the message will be routed direct.
If the board is listed in AREAS.BBS, the message will be
routed through the designated net/node. According to FTSC
specs, NETmail messages do not have origin lines, path, or
seen-by information.
The -r and -s options must be used together. The -r
option rescans the message area for <areatag>, and sends all
messages found to the node specified with the -s option.
Only one area and one node can be processed at a time.
The -F option directs Swifecho to save the file as a
*.PKT, and create a file-attach message. This is an addition
to provide support for Frontdoor and other mailer software
that requires file-attach for echomail. The default is to
create Binkley-style .FLO and .OUT files.
In order to exporting a single message with a
file-attach message, the -F must precede the -# option.
┌──────┐
│ 74 │
└──────┘
Errorlevels ...
If Swifecho processes any echomail, it will exit with
errorlevel 5, if it doesn't process any mail, it exits with
errorlevel 4, and if there is a serious error, it will exit
with errorlevel 2. The errorlevel can be used to control
whether or not programs such as Swiflink need to be run.
When multiple processing options are specified on the
commandline, processing will follow a certain order. Single
messages (-#) are exported first and flags (i.e. -F) are set
in the order of appearance, then echomail (-e) is exported,
netmail exported (-n), inbound mail unpacked & tossed (-u),
*.MSG files tossed (-m), and finally rescans (-r,-s).
Note: "toss" refers to importing and adding messages
to the messagebase.
The order of processing is internal, and with few
exceptions, can't be designated on the command-line. If you
want an alternate order of processing, you will need to run
Swifecho at two different times. For example, the
-rescan/-sendto option is processed following the other
options. If you want to -rescan/-send before processing
incoming mail, you need to run the program twice (Swifecho
-r.. -s..; Swifecho -u),
┌────────────────┬──────┐
│ Swiflink │ 75 │
└────────────────┴──────┘
Swiflink is a maintenance utility that links message
threads together for messages imported from echomail. It can
be run following Swifecho's unpacking of new mail. Swiflink
links messages in all areas based on the Subject, not
including Re:, etc. There is a maximum of 1024 threads per
area (if system memory permits).
Swiflink can alternately read a list file of areas to
link. Swifecho creates an import log file that is normally
used for this. The list file is not automatically deleted,
so you will have to do that if you have no further use for
it.
The options for SWIFLINK are:
-a = analyze disk space;
-k = kill backup files when finished;
-l<filename.ext> = use list file;
-t = trace mode;
-w = write-in-place;
The write-in-place mode rewrites the file in the same
space as the original file. This allows you to link
messages without additional disk requirements. If you abort
the operation when in write-in-place, there is a possibility
the files will be corrupted.
The -analyze option allows you to write in place only
if there isn't enough space for normal processing. The -w
option must still be used but ignored if sufficient space
exists.
┌──────────────┬──────┐
│ Swifpack │ 76 │
└──────────────┴──────┘
Swifpack is a SwiftBBS utility for maintaining the
SwiftBBS messagebase. SWIFPACK is a combined message killer
and packer. It's operation is controlled by information in a
file called "KILLSTAT.BBS", and commandline options.
Control file commands have the format, KILLCOUNT
<boards> -N<count>. The only currently supported select
operation is KILLCOUNT. An additional verb, MAXKEEP may be
used in the KILLSTAT information file to apply to all areas.
This may be handy if you keep the same number in all areas,
or for when you add new areas and forget to add it to
maintenance operations.
This is a sample KILLSTAT.BBS file:
MAXKEEP 20
KILLCOUNT 3 5 -N15
killcount 188 -N10
KILLCOUNT 59 -N5
Swifpack supports analyze and write-in-place modes, that
may be specified on the command line.
Swifpack DOES check disk space, and will abort if there is
not enough space on the disk and no over-riding commands have
been used. Swifpack packs the files into temporary files
(*.UPD), and keeps old files as *.BAK. Thus, if the pack is
unsuccessful, you will have some *.UPD files left over.
Otherwise, a backup message base is kept in *.BAK files.
Swifpack ALWAYS renumbers, and does update lastread and
highmsgread counters for current users. Swifpack also
re-numbers message links to reflect the new message numbers.
The commandline options for Swifpack include:
-a = analyze disk space and message base (partial);
-k = kill backup files when finished;
-w = write-in-place;
-t = trace mode;
The write-in-place mode rewrites the file in the same
space as the original file. This allows you to link messages
without additional disk requirements. If you abort the
operation when in write-in-place, the messagebase files will
be corrupted and unusable.
When using -a in conjunction with -w, Swifpack
will analyze disk space and write-in-place only if there's
not enough space to do a normal messagebase pack.
┌────────────┬──────┐
│ Msgtxt │ 77 │
└────────────┴──────┘
MSGTXT is a file import program for the SwiftBBS
message base. It's initial purpose was to enable me to
create a messagebase with the SwiftBBS documentation, but it
can also be used to import other individual and multiple
messages into SwiftBBS format files.
This version now also allows you to make a set of
bulletins from a textfile.
Usage: MSGTXT -b<boardno or bulletin> -m<messagefile> -[options]
Options are:
-b = Board Number or bulletin basename;
-m = Message file;
-t = Address message to;
-f = Who message is from;
-s = Subject of message;
-l = maximum lines per message;
-p = page number to start numbering;
-c = character number to break page at;
-i = ignore page breaks;
For to, from, subject, use '_' instead of spaces;
MSGTXT requires you to specify a board number (or
bulletin base filename) and a filename for the textfile
being imported. If the -b parameter is numeric, messages
will be imported, otherwise bulletins will be created.
The formatting of files into messages is controlled by
the number of lines and location of formfeed or alternate
page break characters. When a page break character is
found, it is stripped and a new message is started. A new
message is also started if MSGTXT encounters 49 linefeeds
for the current message.
An alternate page break character can be specified with
the -c option. The default is ascii 12. To use '|' (ascii
124) as a page break character, specify it as -c124. The
linefeed count can be altered by the -l commandline switch.
To process files controlled only be page break
characters, you may be able to set the linefeed count above
the expected linecount for any page.
To process files controlled only be linefeeds, you can
specify that with the -i option. The page break characters
are still stripped when read.
The -p page number will be used to create temporary
files and identify each message and/or bulletin. The page
number option is useful if you want to create bulletins from
a document with a table of contents, followed by numbered (&
┌──────┐
│ 78 │
└──────┘
formfeed separated) pages. For example, if MY.TXT has the
contents as one page followed by pages 1-5, you can create
BULLET.ASC, BULLET1.ASC,..BULLET5.ASC with the command:
MSGTXT -mMY.TXT -bBULLET -p0
This can also be used to convert several different
files into a set of bulletins.
MSGTXT -mREPORT.TXT -bBULLET -p1
MSGTXT -mSUMMARY.TXT -bBULLET -p2
For intro pages, i, ii, etc., use a negative number
to align page numbers. With a document numbered i, ii,
contents, 1..5 you can create files BULLET-2.ASC (i),
BULLET-1.ASC (ii), BULLET.ASC (contents), BULLET1.ASC...
with the command:
MSGTXT -mMY.TXT -bBULLET -p-2
Other options controlled by the commandline include
From, To, and Subject. The defaults are:
From: SwiftBBS Messagetext
To: All
Subject: <textfile>
When specifying alternate addressing or subjects, use
underscore ('_') instead of spaces to separate words.
Examples:
MSGTXT
displays reminder of Usage.
MSGTXT -b18 -mSWIFTBBS.ABS
imports the file SWIFTBBS.ABS into board 18.
MSGTXT -b21 -mSWIFTBBS.LOG -l60 -fDana_Bell -tAll_Users
imports the file SWIFTBBS.LOG into board 21, and
addresses messages from "Dana Bell" to "All Users".
Each page contains a maximum of 60 lines.
MSGTXT -bBULLET -mMY.TXT
creates BULLET1.ASC - BULLET5.ASC from the file
MY.TXT.
MSGTXT -mSWIFTBBS.ERR -tAll gives you an error (no board
number specified) and exit.
Note: The status of the board will be observed. If the
message board is an echo board, the imported messages will
be treated as echo-able messages. The origin-line shows the
system name, and network addressing aka is maintained for
the selected message board.
┌─────────────┬──────┐
│ Swifdump │ 79 │
└─────────────┴──────┘
Yet another utility provided with SwiftBBS is SWIFDUMP.
This utility simply dumps various control file information to
the screen for quick checks. When reporting bugs in
SwiftBBS, it can be helpful if the configuration information
is redirected to a text file that you can send to the
author. Executed without parameters displays a menu of
options. The command line arguments for SWIFDUMP are:
-a = display information from all files;
-b = display message board information;
-c = display basic configuration;
-e = display event list;
-m = display menu to select from;
-t = display total active messages in messagebase;
-x = display exit information;
-n<string> = search nodelist for string,net/node,baudrate;
-u<string> = display user for <string>;
Redirecting Swifdump is done by redirecting output from
the command-line with 'filename.dmp', i.e. for a
configuration display,
SWIFDUMP -c > SWIFTBBS.DMP
To append an existing file, use double arrows, '>>',
i.e. for a listing of boards,
SWIFDUMP -b >> SWIFTBBS.DMP
┌───────────────────────────────┐
┌────────────────────┤ Networks . . . . . . . . 82 ├──────┐
│ Applications │ Point Overview . . . . . 83 │ 80 │
└────────────────────┤ BBS Overview . . . . . . 84 ├──────┘
│ Making the Point . . . . 85 │
│ Sample BBS setup . . . . 91 │
└───────────────────────────────┘
SwiftBBS is basically a message database. In referring
to this database, the term message-base is often used.
Consequently, it may be suitable software for any environment
where leaving messages to others is needed. While the
primary purpose for the development of SwiftBBS was to enable
participation in the network echomail conferences. Some
other common applications may include the following:
Inter-office: Clubs, organizations or businesses may set
up their own BBS & send/receive correspondence from a central
system. Setups are possible where all offices are callable,
or where a single system is regularly polled.
Intra-office: With a minimum setup of BBS and message
editor, office personnel can exchange messages, leaves
public or private notes, and access bulletins or text based
databases relative to the offices organization. A private
message area for each individual will enable each user to
send/receive personal notes.
Home messaging: The notes on the frig could be
replaced with a computer based messaging system similar to
the Intra-office setup.
Shell: Using various shell types, SwiftBBS could act
as a shell for running programs from a menu.
Interpreter: Using the command language, some utilities
could also be designed to run as separate programs. The
command language provides the basics for text based
programming.
Information/Help Database: Using bulletins and File
displays, SwiftBBS could act as a help database or
information file.
┌──────┐
│ 81 │
└──────┘
If that's not enough, for a cost, SwiftBBS can be
customized to meet a particular need. Custom versions of
SwiftBBS will still operate with the same options as the
generic versions, but hard-coded with additional specialized
database options. On-line estimates, organizational project
listings, and various accounting reports are some
possibilities.
Customized versions won't be distributed, and will not
affect the availability of the generic SwiftBBS as a free
messaging program. You're also still free to use SwiftBBS to
take care of your special needs without custom programming.
┌──────────────┬──────┐
│ Networks │ 82 │
└──────────────┴──────┘
SwiftBBS software is primarily designed for use in
messaging networks. When speaking of "networks" here, the
reference is to phone-line interfaced networks such as
FidoNet, not wide-area, value-added, or local-area networks.
These network boards share messages and other data by
using a set of standard procedures and file formats,
(including many non-PC microcomputers) and exchange this
information over local and long-distance phone lines.
Related software falls into several areas.
System software .. a device driver for your monitor
and a fossil driver are the two key items needed here.
Mailer software .. The mailer is what makes networking
possible. An unattended mailer calls other boards, answers
calls, receives and transfers mail, and calls or exits to
other functions. The mailer is also referred to as a
Front-End.
Archiving software .. As an option, most transfers are
compressed (or archived) to speed transfer and save disk
space.
Message handling software .. Converts specially
formatted message files from and to the messagebase. Also
called tossing & scanning.
Nodelist software .. Converts a network nodelist (or
directory) into a useable form.
Utility software .. Allows you to maintain the files
used in the system, extract information from the files, or
summary activities.
An in-depth explanation of each program would be beyond
the scope of this documentation. The SwiftBBS package
includes most of the programs needed for message handling and
BBS/Point maintenance. The remaining discussions assume you
will be familiar with the other software items mentioned. To
get more information on BBS points, ask your local FidoNet
BBS system operator.
┌──────┐
│ 83 │
└──────┘
Interfacing and batch files
In order to interface supplemental network software with
the operation of SwiftBBS, it necessary to create a batch
file. While there are programs that will take care of most
of the functions, most systems still require batch files to
adequately customize a point or BBS. Also, since each
program operates separately, the memory requirement is not as
much of a problem. The following sample setups illustrate
ways the batch file can be used to coordinate activity.
Directory structure
Using a directory structure to separate each type of
file makes system maintenance easier, and makes it easier to
comprehend the operations and information being handled.
The directory structure selected will depend on the
individual sysop. The following examples uses a single
directory with multiple subdirectories.
┌────────────────┐
│ Point overview │
└────────────────┘
A Point System is a user's private 'BBS'. Instead of
reading and replying to messages on a BBS, a sponsoring BBS
system can transfer the related message files to a point
system. The point-operator can then read/reply off-line,
then transfer the replies back to the 'boss' system. In most
cases the point system can imitate all the messaging
capabilities of the normal BBS.
SwiftBBS software enables you to operate a point, and
can now support end-node BBS operation. Technically, point
referes to a hierarchial configuration in a particular
network. Each net has several nodes, and each node may have
several points. While point systems can easily operate as
public BBSs, in most cases points are off-line user systems.
┌──────┐
│ 84 │
└──────┘
In order to operate as a point, you will have to have a
sponsoring BBS, and interface SwiftBBS with other network
programs, each of which may need to be configured.
overview
SwiftBBS includes support for private pointnets and
multiple addresses. Both are assigned by Network
coordinators and usually come with some forewarnings.
In many cases, point systems are configured with both
system numbers. One is a point number off of the BossNode
while the other is the private pointnet number, both of which
should correspond with each other.
As an example, the point number for point 7 is
1:3801/8.7, while the pointnet number would be 1:30566/7.0
PointNet numbers should only be used for operations with the
pointnet. Some Network policies dictate that pointNet
numbers are only used for boss/point interaction and should
not appear in any origin-lines. Only a valid 4D point number
should appear in the origin line.
Since points are still a bit new, all of the software used
for BBS operation doesn't fully support it. In order to make
it work some kludges are also used to manipulate messages and
message base operations. At this writing, SwiftBBS is
written to mimic QuickBBS operation, and to support Qecho.
Since the resulting message file doesn't conform to FidoNet
specs, a POINTFIX operation may be required by the boss node.
┌────────────────┐
│ BBS overview │
└────────────────┘
Other than the addressing problems of points, BBS
setups are very similar. One of the key differences is that
SwiftBBS must additionally be remotely accessible. This is
done by using alternate command-line options as directed by
the Mailer software.
Either the batch file or the mailer executes SwiftBBS
with the user on line, by specifying the baudrate to use.
┌────────────────────┬──────┐
│ Making the Point │ 85 │
└────────────────────┴──────┘
The following (low-cost) system setup uses this list of
software. The actual filenames aren't included due to the
high likelyhood the versions will change.
System software - ZAVT.SYS or ANSI.COM, and X00.*
Mailer software - BinkleyTerm (BT.EXE).
Archiving software - LHARC for archives, SPAZ for archive
extraction, and oMMM for archive creation/management.
Message handling software - Swifecho.
Nodelist software - NODELIST.??? and PARSELST.
Utility software - Swiflink and Swifpack.
The batch file - you design it to meet your needs.
The following discussions refer to a system with the
following directory structure.
C:\POINT─┬─BIN
├─BT
├─FILES
├─MAIL
├─OUTBOUND
└─SW
This directory structure was selected to isolate
the programs and files of the point system. This also makes
it simpler to backup, or to exclude from backups, depending
on your level of priorities. The directories would contain
the following software.
POINT\BIN
All executable program files can go here. This will leave
the other directories a little less cluttered. If you need
to keep all the documentation, you may want to create an
additional directory POINT\DOC. Additional directories for
menus and/or SwiftBBS text files may be created parallel or
below the POINT\SW directory.
POINT\BT
The BinkleyTerm files BINKLEY.EVT & BINKLEY.CFG will be
located here.
┌──────┐
│ 86 │
└──────┘
POINT\FILES
All inbound files will come in here. Files here may
include files sent by other systems and files requested.
POINT\MAIL
On some software this will contain Netmail messages.
SwiftBBS may or may not use this. These files will be of
the *.MSG type.
POINT\OUTBOUND
All outbound files will go out here. In the BinkleyTerm
style, these files are identified by the address and a
number of extensions, CUT, FLO, REQ, MO?, TU?, etc.
POINT\SW
Your message base files will be stored here, as well as
all SwiftBBS control files. The QNL*.BBS (compiled)
nodelist files will also go here, as well as the PARSELST
control file and raw (uncompiled) nodelist. SwiftBBS may
also be configured to look here for menus and textfiles.
Addresses
When operating SwiftBBS as a point system, you will need
to configure SwiftBBS aka's appropriately for your pointnet
number and the message boards for your point number. The
simplest way to do this is to configure the main address as
your pointnet, and aka 1 for your point.
For all echo message boards, select 1 as the "aka to
use". For netmail, select 0 as the "aka to use".
In SWIFCNFG's configuration screen 2, specify your
pointnet number (z:fffff/pp.0) as the main node address, and
your point number (z:mmm/nn.pp) as the first Aka.
In SWIFCNFG's message area specifications, specify 0 as
the Aka to use for your netmail board. For ALL OTHERS,
specify 1 as the Aka to use.
In the control file for SWIFECHO, specify your pointnet
number as the Node, but don't include the zone or point.
Node 30566/n
Since current versions of SWIFECHO will not forward, all
mail originates or terminates on your system.
┌──────┐
│ 87 │
└──────┘
-- binkley --
One program needed for distribution of echomail is a
front-end/mailer capable of "talking" with other front-end/
mailer programs. BinkleyTerm is one such program. It is not
only very popular and very good, it's also "free for the
asking", like SwiftBBS.
Since Binkleyterm is the "front-end" to BBS or point
operation, it's necessary to get this working before you can
start linking into some echoes. It's also the simplest. The
Binkley setup uses several configuration files and two
program files. The two key configuration files are
BINKLEY.CFG and BINKLEY.EVT.
As a part of binkley.cfg, you should specify your
pointnet number (z:fffff/pp.0, replacing pp with your
point). Also, include PrivateNet in the file. I recommend
using a QuickNodelist entry and specifying the SwiftBBS
directory for the location, to avoid having to keep another
nodelist.
BINKLEY.CFG
Address 1:30566/n.0
QuickNodelist
Nodelist C:\POINT\SW
Boss mmmm/nn
;BossPwd
;BossPhone
Since the point system will not be left on-line, the
events are very limited. This event file simply exits to the
UNPACKMAIL section of the batch file when new mail is
received through Binkley. To run the message-base packing
procedure you will need to press F3 from the Binkley screen.
BINKLEY.EVT
Event All 00:00 24:00 E1=10 E2=10;
-- ommm --
At this stage, SwiftBBS only creates .OUT files and
places them in the outbound area. This will work like this,
but most BBS systems will want them compressed.
In order to prepare messages for delivery to other
nodes, archives are created and identified for delivery by
Binkley. The BinkleyTerm companion for this oMMM (opus
┌──────┐
│ 88 │
└──────┘
matrix message masher) and configuration files for oMMM
include OMMM.CTL and OMMM.CFG. Other control files are
created by BinkleyTerm's BTCTL program mentioned above. In
OMMM.CTL you need to specify the fidonet address of the
BossNode for mail processing statements.
UNHOLD mmmm/nn
ONECM mmmm/nn
The OMMM.CFG is an optional replacement for a long
command-line. In newer versions, oMMM is required. For more
information about oMMM, read the documentation that
accompanies oMMM. The following is a typical OMMM.CFG file.
messagepath C:\POINT\MAIL
holdpath C:\POINT\OUTBOUND
routefile C:\POINT\BT\OMMM.CTL
-- parselst/nodelists --
With some mailers, you don't need a nodelist if you're
only going to call your echomail feed system. Additional
entries for BossPhone and BossPwd may be required in
BINKLEY.CFG, and/or an alternate address. But for other
uses, you may want to use a handmade one.
You will need to be sure YOU're included in the
nodelist. Normally, you will be provided with a private
nodelist file, but you can also create one with the basic
requirements. This simple nodelist file might look like this
and be compiled with parselst.
Zone,1,
Host,30566,Baby_Blue,Tyler_TX,Dana_Bell,1-903-581-6077,9600,CM,XA,HST
,n,Another_Point,Tyler_TX,Sis_Sopp,1-903-nnn-nnnn,2400,XA
Host,3801,
,8,Baby_Blue,Tyler_TX,Dana_Bell,1-903-581-6077,9600,CM,XA,HST
The following statements should be included in the control
file for Parselst, PARSELST.CFG.
If you specify the areacode here, be sure to strip it in
binkley.cfg.
Node z:fffff/pp
QuickNodelist
If you will be using both a network nodelist and the pointnet
nodelist, you will need to rename the pointnet nodelist to
something like NODELIST.PTS and include the statement
Mylist Nodelist.pts
┌──────┐
│ 89 │
└──────┘
-- batch file(s) --
The following is a batch file for a simple point
operation, and BBS access using the above programs and
control files. With it, BinkleyTerm is configured for the
following operations:
F1 - unpacks incoming mail. (usually done automatically)
F2 - local logon. Lets you log on to your BBS
F3 - cleans out old messages and packs message base.
Alt-M - manually poll for mail.
Alt-X - quit BinkleyTerm
BinkleyTerm is what picks up and delivers the messages in
the conferences you participate in or share. BinkleyTerm is
designed to call if there are some new messages (or mail) to
be sent. When it does, it will also receive any mail waiting
to be picked up. If there is no mail to go out, you will
need to "poll" for it.
How you want to do polling depends on you. It can be
configured so that the system will call repeatedly until it
gets through. The best way to design this for business
systems may be to setup for automatic polling during a
nightly event (1-4am).
Incoming mail is often sent in compressed form. It is
usually faster to uncompress mail that it is to get it
uncompressed, and takes up less space on the holding system.
Normally, Binkley exits to unpack mail anytime it receives
any. If you're not sure this was done, F1 will do it.
Your own BBS access is provided by pressing F2 from
Binkley in this setup. If you want to start the point
operation with local logon as the first option, you can also
specify this on the command line. In this case,
POINT localbbs
will start with the BBS and then load Binkley after you
logoff.
ECHO OFF
C:
CD\POINT
PATH > REPATH.BAT
PATH=C:\POINT\BIN\;%PATH%
IF NOT %1.==. GOTO %1
:START
SHIFT
IF NOT %1.==. GOTO %1
CD\POINT\BT
BT share
:PROCESS
IF ERRORLEVEL 254 ECHO ERROR ADDRESS NOT FOUND
IF ERRORLEVEL 210 GOTO OUT
IF ERRORLEVEL 31 GOTO START
┌──────┐
│ 90 │
└──────┘
IF ERRORLEVEL 30 GOTO CLEAN
IF ERRORLEVEL 20 GOTO LOCALBBS
IF ERRORLEVEL 10 GOTO UNPACKMAIL
IF ERRORLEVEL 1 GOTO OUT
GOTO START
:LOCALBBS
cd\POINT\SW
SwiftBBS -loa
:After
IF ERRORLEVEL 5 GOTO NET&ECHO
IF ERRORLEVEL 4 GOTO ECHO_ONLY
IF ERRORLEVEL 3 GOTO NET_ONLY
GOTO START
:NET&ECHO
cd\POINT\SW
Swifecho -e
:NET_ONLY
cd\POINT\SW
Swifecho -n
CD\POINT\BT
oMMM -sA -a
GOTO START
:ECHO_ONLY
cd\POINT\SW
Swifecho -e
CD\POINT\BT
oMMM -sA -a
GOTO START
:UNPACKMAIL
CD\POINT\FILES
spaz -F C:\POINT\FILES\
CD\POINT\SW
Swifecho -u -iarrivals
Swiflink -awk -larrivals
Swifecho -m
DEL ARRIVALS
goto START
:CLEAN
CD\POINT\SW
Swifpack -awk
Swiflink -awk
goto START
:OUT
CD\POINT
REPATH
ECHO The Point Board is . . . DOWN
┌────────────────────┬──────┐
│ Sample BBS setup │ 91 │
└────────────────────┴──────┘
Addresses
Unless you intend to operate as a mult-networks BBS
system, you will only need to use your main node address.
In SWIFCNFG's configuration screen 2, specify your
pointnet number (z:fffff/pp.0) as the main node address, and
in SWIFCNFG's message area specifications, specify 0 as the
Aka to use for all your message boards.
In the control file for SWIFECHO, specify this same node
address, again not including the zone or point.
Node 3888/n
Since current versions of SWIFECHO will not forward, all
mail originates or terminates on your system.
-- binkley --
For BBS operation, you should specify your main node
address in Binkley.cfg, and not specify PrivateNet as was
done before.
BINKLEY.CFG
Address 1:3888/n.0
QuickNodelist
Nodelist C:\BBS\SW
BBS exit
Since the BBS system will be left on-line, you should
automate message-base packing. This has been implemented
below by adding an event to exit with ERRORLEVEL 30 at
midnight. You may also want to use additional events, but
that will not be discussed since. Consult your documentation
for oMMM and BinkleyTerm for more information on interfacing
these two programs.
┌──────┐
│ 92 │
└──────┘
BINKLEY.EVT
Event All 00:00 00:00 F E1=30 ;
Event All 00:00 24:00 E1=10 E2=10;
-- ommm --
The only changes needed here include changing the path
from POINT to BBS.
messagepath C:\BBS\MAIL
holdpath C:\BBS\OUTBOUND
routefile C:\BBS\BT\OMMM.CTL
-- parselst/nodelists --
The nodelist for BBS systems in a network is provided by
the Network Hosts. Use the same information in the control
file.
-- batch file(s) --
The following is a batch file for simple BBS operation.
In addition to the following operations, BinkleyTerm will
exit when users call the system.
F1 - unpacks incoming mail. (usually done automatically)
F2 - local logon. Lets you log on to your BBS
F3 - cleans out old messages and packs message base.
Alt-M - manually poll for mail.
Alt-X - quit BinkleyTerm
FrontDoor note: Swifecho does provide limited support for
FrontDoor outbound. To specify FD exporting of mail (Packets
with File attach), use the -F option with -e or -n. Omit the
lines referring to oMMM, and adjust the pathnames according
to your setup.
┌──────┐
│ 93 │
└──────┘
ECHO OFF
C:
CD\BBS
PATH > REPATH.BAT
PATH=C:\BBS\BIN\;%PATH%
IF NOT %1.==. GOTO %1
:START
CD\BBS\BT
BT share
:PROCESS
IF ERRORLEVEL 254 ECHO ERROR ADDRESS NOT FOUND
IF ERRORLEVEL 210 GOTO OUT
IF ERRORLEVEL 31 GOTO START
IF ERRORLEVEL 30 GOTO CLEAN
IF ERRORLEVEL 24 GOTO REMOTE
IF ERRORLEVEL 20 GOTO LOCALBBS
IF ERRORLEVEL 12 GOTO REMOTE
IF ERRORLEVEL 10 GOTO UNPACKMAIL
IF ERRORLEVEL 3 GOTO REMOTE
IF ERRORLEVEL 1 GOTO OUT
GOTO START
:LOCALBBS
cd\POINT\SW
SwiftBBS -loav
Goto After
:UNPACKMAIL
CD\POINT\FILES
spaz -F C:\POINT\FILES\
CD\POINT\SW
Swifecho -u -iarrivals
Swiflink -awk -larrivals
Swifecho -m
:REMOTE
if ERRORLEVEL 3 SET BPS=3
if ERRORLEVEL 12 SET BPS=12
if ERRORLEVEL 24 SET BPS=24
cd\POINT\SW
echo .
echo Now loading remote
SwiftBBS -ob%BPS% -e0
Rem fall through to After
:After
IF ERRORLEVEL 5 GOTO NET&ECHO
IF ERRORLEVEL 4 GOTO ECHO_ONLY
IF ERRORLEVEL 3 GOTO NET_ONLY
GOTO START
┌──────┐
│ 94 │
└──────┘
:NET&ECHO
cd\POINT\SW
Swifecho -e
:NET_ONLY
cd\POINT\SW
Swifecho -n
CD\BBS\BT
oMMM -sA -a
GOTO START
:ECHO_ONLY
cd\POINT\SW
Swifecho -e
CD\BBS\BT
oMMM -sA -a
GOTO START
:UNPACKMAIL
CD\BBS\FILES
spaz -F C:\BBS\FILES\
CD\BBS\SW
Swifecho -u -iarrivals
Swiflink -awk -larrivals
Swifecho -m
DEL ARRIVALS
goto START
:CLEAN
CD\BBS\SW
Swifpack -awk
Swiflink -awk
goto START
:OUT
CD\BBS
REPATH
ECHO The Bulletin Board is . . . DOWN
┌─────────────────────────────────┐
┌────────────────┤ SwiftBBS menu types . . . 96 ├──────┐
│ Appendices │ SwiftBBS InfoCodes . . . . 99 │ 95 │
└────────────────┤ SwiftBBS command language 102 ├──────┘
│ Message editor interface . 110 │
│ SwiftBBS files . . . . . . 112 │
│ Acronyms . . . . . . . . . 117 │
│ Smiley faces . . . . . . . 118 │
│ Afterward . . . . . . . . 125 │
└─────────────────────────────────┘
The following sections are either lists of items for
reference, technical details for developers, or miscellaneous
topics that haven't found a place in the main text of the
documentation.
┌────────────────────┬──────┐
│ Menu Types │ 96 │
└────────────────────┴──────┘
Type Description Optional data
-------------------------------------------------------------------
0 ... Text Line (Not Considered a Command) .. None
1 ... Goto New Menu ......................... <Menu Name>
2 ... Gosub New Menu ........................ <Menu Name>
3 ... Return from Previous Gosub ............ None
4 ... Clear Gosub Stack and Goto New Menu ... <Menu Name>
5 ... Display .ASC/.ANS/.AVT File ........... <1-8 Char Name>
6 ... Bulletin selection Menu ............... <1-7 Char Prefix>
7 ... Shell and Run DOS Program/command ..... <DOS command>
You can include information from the SwiftBBS operating
environment by using these arguments in DOS command:
*B Baud Rate (300, 1200, 2400 and 0 for Local)
*C Path to COMSPEC (COMMAND.COM)
*F First Name of User
*G Graphics Mode (Off is 0, 1 is On)
*H Shell with the fossil initialized.
*L Last Name of User
*R Record Number of User for the User Database
*T Time Left for Call (in minutes)
8 ... Version Information ................... None
9 ... Logoff ................................ None
11 ... Page the Sysop for Chat ............... <Page Prompt>
12 ... Execute command language file ......... <1-8 Char Name>
13 ... List/Search User List ................. None
14 ... Time Statistics ....................... None
15 ... Exit to DOS (partial support).......... <Errorlevel>
16 ... Change City and State ................. None
17 ... Change Password ....................... None
18 ... Change Length of Screen ............... None
19 ... Toggle Screen Clearing ................ None
20 ... Toggle Page Pausing ................... None
┌──────┐
│ 97 │
└──────┘
Type Description Optional data
-------------------------------------------------------------------
21 ... Toggle ANSI Graphics Mode ............. None
22 ... Check for Personal Mail ............... None
23 ... Read Messages ......................... <Board #>
24 ... Scan Message headers .................. <Board #>
25 ... Swiftscan Messages .................... <Board #>
27 ... Post a New Message .................... <Board #>
30 ... MS-DOS Directory ...................... <Full Path>
31 ... List FILES.BBS (partial)............... <Full Path>
32 ... Download a file (beta only) ........... <Full Path>
33 ... Upload a file (beta only) ............. <Full Path>
38 ... View a text file ...................... <Full Path>
39 ... Display a Direct Text File ............ <Full FileSpec>
40 ... Display ASC/ANS/AVT File w/ Hot Keys .. <1-8 Char Name>
41 ... Toggle Full Screen Editor ............. None
45 ... Type ASC/ANS/AVT File and Pause at End <1-8 Char Name>
47 ... Log Entry in SwiftBBS SYSTEM.LOG ...... [Entry optional]
┌──────┐
│ 98 │
└──────┘
Type Description Optional data
-------------------------------------------------------------------
48 ... Toggle AVATAR Graphics Mode ........... None
70 ... Edit a textfile (local only) .......... <Full Path>
80 ... Queue file for download (beta only) ... <Full Path>
81 ... File Request (Binkley Style) .......... None
82 ... Lookup Net/Node ....................... None
86 ... Opus style SETUP menu ................. None
87 ... Opus style MESSAGE menu ............... None
88 ... Opus style Default message menu ....... <Board #>
89 ... Opus style INFO menu .................. None
90 ... Opus style NETWORK menu ............... None
91 ... Call/Return to Opus style MAIN menu ... None
92 ... Opus style Prompt for Area Change ..... None
93 ... Display List of Named Message Areas ... None
94 ... Displays List of Active Message Areas . None
95 ... Review User Setup ..................... None
99 ... [reserved] ............................
100 .. Log-on new user ....................... None
┌──────────────────┬──────┐
│ InfoCodes │ 99 │
└──────────────────┴──────┘
SwiftBBS will enable you to display ASC/ANS/AVT files
with various system parameters with embedded control codes,
I'll refer to as InfoCodes. Each control code contains a
preceding control character and an alphabetic character. At
present the control characters that enable this include
Ctrl-F and Ctrl-K. When using control codes, take
precautions to avoid problems with communications
software/hardware that use other control codes.
The following table shows the control codes currently
supported. Control codes not supported will normally be
ignored.
Control - K text display codes
-------------------------------------------------------------------
A ... System's total number of callers
B ... System's last caller
C ... Total active messages on system
D ... Lowest message number on system
E ... Highest message number on system
F ... Times user paged
G ... Day of the Week
H ... Number of users on system
I ... Current system time
J ... Present system date
K ... Minutes connected on current call
L ... Seconds connected on current call
M ... Minutes used today
N ... Seconds used today
O ... Minutes left on system
P ... Seconds left on system
Q ... User's Time limit
R ... Current baud rate
┌───────┐
│ 100 │
└───────┘
Control - F text display codes
-------------------------------------------------------------------
A ... User's full name
B ... User's City, State
C ... User's password
D ... User's data phone number
E ... User's home phone number
F ... User's last date on system
G ... User's last time on system
H ... User's A flags in the format [X---X-XX]
I ... User's B flags in the format [X---X-XX]
J ... User's C flags in the format [X---X-XX]
K ... User's D flags in the format [X---X-XX]
L ... User's Netmail credit in cents
M ... Number of message(s) user has posted
N ... User's highest message read
O ... User's security level
P ... Number of times user has called this system
Q ... Number of uploads from user
R ... User's uploads in Kbytes
S ... Number of downloads from user
T ... User's downloads in Kbytes
U ... Minutes user has been on system this date
V ... User's selected screen length
W ... User's first name
┌───────┐
│ 101 │
└───────┘
Control - F text display codes (con.)
-------------------------------------------------------------------
X ... User's ANSI setting (Y/N)
Y ... User's More setting (Y/N)
Z ... User's Screen Clear setting (Y/N)
1 ... User's Full-scrn editor setting (Y/N)
2 ... User's AVATAR setting (Y/N)
┌──────────────────┬───────┐
│ Command language │ 102 │
└──────────────────┴───────┘
SwiftBBS command language (type 12) ...
A SwiftBBS questionnaire file is specified by specifying
the question file in the data area. The created file must
end with a .Q-A extension, and contain commands as specified
in the language below. Answers can be output (appended) to
an answer file with the .ASW extension.
LIMITATIONS
Maximum number of variables: 32
Maximum length of each questionnaire line: 128
Maximum length of each questionnaire keyword: 80
Maximum length of information for each line: 80
Maximum length of variables: based on memory available
Maximum number of nested Ifs: 10 or less based on memory
The length of variables is "declared" during it's first
use. The variable may be used later, but the length remains
the same.
FORMAT
All commands must appear on separate lines, though they
may be indented with spaces. The amount of space between
parameters is also relatively insignificant.
While it is being encouraged to maintain the
capitalization of Keywords and variables, Keyword matching
and variables are not case sensitive. PostInfo and POSTINFO
have the same effect within SwiftBBS command language files.
Likewise, Var1, VAR1, and var1 will all refer to the same
variable.
RESERVED WORDS
Two types of reserved words are included. Keywords are
used to give commands to the program. Other keywords are
internal variables, that may be displayed or written to
file. You cannot change the values contained in these
variables.The current internals are:
User = The currently logged user.
System = The SwiftBBS system name in Config.bbs.
Sysop = The SwiftBBS sysop name in Config.bbs.
Security = The currently logged user's security in
character format, i.e. "2000"
Ansi = "YES" or "NO" based on the user's ansi
specification
┌───────┐
│ 103 │
└───────┘
Formatting and display control codes can be generated by
using the following variables:
Beep = The ascii character 0x7, BEL.
Tab = The ascii character 0x9, HT.
NewLine = The ascii character 0xa, LF or linefeed. In text
files, this may be expanded to carriage
return/linefeed.
NewPage = The ascii character 0xc, FF or formfeed.
KEYWORDS
Below are the keywords used in the current questionaire
language, along with the required parameters. They are
divided into sections based on simplification of use and
function.
Information in angle < > brackets should be replaced with
the specified name, size or string. Information in square
brackets [ ] is optional.
Basic Questionnaire Options
----- ------------- -------
Questionnarie Options may record some answers in an
.ASW answer file. All answer file output is terminated with
a carriage return. Output to screen and the option binary
file is not terminated with carriage returns. To insert a
carriage return, include the character "|" inside the
quotes.
PostInfo
Writes the user's name, date, and time to the answer
file. This function also sets the variable "User" to
indicate the current user's name, Sets the variable
"Ansi", and adds an entry to the System logfile. This
is normally used in the first line of a questionnaire
and may serve as a delimiter in the answer file.
ClearScreen
Clears the users screen if screen clearing is active.
This is useful for avoiding confusion between the
questionnaire and menu options.
ChangeColor <fg> <bg>
Changes the colors of screen output (if color is
enabled), to use the new foreground (fg) and
background (bg) colors. This is only done if the
user's configuration has enabled a color display mode
such as ANSI or AVATAR.
ChangeColor 4 0
┌───────┐
│ 104 │
└───────┘
SetFlag <set/num> [ON|OFF]
This is used to set a user's particular flag on or off.
If ON or OFF is not specified, ON is the default. This
is useful either as a switch when the questionnaire is
answered, or may be used within a conditional statement,
i.e. between IF and ENDIF lines. There are four sets
of flags in SwiftBBS. Each flag is identified by a
<set> letter, A to D, and a number <num> 1 to 8.
SetFlag C5 ON
SetSecurity <seclvl>
This is used to set the user's security level. Valid
security levels are from 1 to 32000. Security may also
be conditional upon some other information obtained. A
password command (see below) may also be used to check
access levels.
SetSecurity 100
Remark [remarks and reminders]
In this version, Remark is unnecessary since all
unrecognized keywords are considered remarks or
comments. In the future, unrecognized keywords may
generate error messages, so using Remark is recommended.
Remark This block is used for sysops.
AnyKey
Prompts for and waits for the user to press a key
before continuing.
Quit
This quits the questionnaire at this point, and closes
active questionnaire files. Since the questionnaire
terminates naturally at the end of the file, this may
only be needed within conditional blocks, but it is
recommended. Extensive comments, however, may follow
this statement if desired.
Variable Options
-------- -------
SwiftBBS variables are set up dynamically, that is,
space is set aside as each variable is initially declared or
used.
In contrast, QuickBBS sets aside 255 bytes for each
variable. To simulate QuickBBS operation, you can declare
the variables with the Variable statement. For example,
Variable 255 Var2 will allocate 255 bytes for the variable
Var2.
┌───────┐
│ 105 │
└───────┘
SwiftBBS variables are also character based, while
QuickBBS variables must be numerical. If you wish to
maintain compatibility, SwiftBBS will recognize numberical
variables but they will still be used as character strings.
Variable <count> <variable>
Sets aside <count> bytes for the variable <variable>.
This variable may be used to read data from disk, or the
user's keyboard. If subsequent uses of this variable
change the length, the shorter of the two lengths is
used for input.
Variable 36 Name
Let <variable> = "<string>"
Assigns the characters in <string> to <variable> up to
the length of variable. If <variable> doesn't exist,
it will be created and assigned the length of <string>.
Variable 12 Month
Let Month = "January"
Display ["<string>"] [variable]
Displays the optional string between quotes, and an
optional variable.
Display "Welcome to my board" Name
TabDisplay <count> <variable>
Displays the variable <variable> in a left justified
field of <count> length. This is needed for practical
displays in a tabular format. The field is
space-filled, and the <count> can be any practical
amount.
TabDisplay 25 Location
Ask <count> <variable>
Reads up to <count> characters from the user and saves it in
the variable <variable>. If the count specified is
greater than a previously declared amount, the shorter
of the two is used. This option generates a carriage
return following entry.
Ask 30 Name
┌───────┐
│ 106 │
└───────┘
GetChoice <opts> <variable>
Accepts a single key that must be included in the set
<opts>, and assigns it to the variable <variable>. This
option generates a carriage return following entry.
This is particularly useful with yes/no responses.
GetChoice YN Reply
OutputAnswer ["<string>"] [variable]
Writes the string between quotes, and an optional
variable to the answer file. The output string is
automatically terminated with a carriage return.
OutputAnswer "User's name is " Name
Password <count?> <variable> max length is 15
Accepts up to <count?> bytes and stores it in the
variable <variable>. The input characters are not
played back during input.
Conditional Options
----------- -------
This may be one of the most useful parts of the language,
as it controls execution of subsequent commands based on the
user's responses.
Nested Ifs are also supported in SwiftBBS. Nesting is
the process of using If/Endif blocks within other If/Endif
blocks. Each If corresponds to nearest unmatched Endif.
If <variable> = "<string>"
Compares the variable with the string <string>. If the
two match, all statements between this and the
corresponding Endif are executed. Otherwise, the
statements between If and Endif are skipped.
If Password = "Nottingham"
SetSecurity 100
Endif
Endif
Ends the block of conditional statements.
┌────────────────────┬──────┐
│ WRITTEN IN SAND │ 107 │
└────────────────────┴──────┘
The following options are written in sand... That is,
as they are very new, changes are possible in support,
syntax, or use. If you find these options useful for your
purposes, please indicate what other options you would
prefer, extensions of support or syntax, and/or standards to
consider following.
Repetition Options
---------- -------
Repetition along with the Database Options following
allow manipulation, recording, and display of information in
database files. This is an elementary introduction to repeat
processing.
Repeat <count> [remarks]
Repeat/EndRepeat operates in the same way as If/Endif
blocks. All statements in between are repeated <count>
times. The count <count> is decremented when an
EndRepeat is reached. Nested Repeats are not supported.
Repeat 10 times
EndRepeat
This statement terminates a Repeat block and continues
execution to the next statement in the questionnaire.
BreakRepeat
Using this statement, it's possible to break out of a
Repeat loop. Execution continues at the next statement
following EndRepeat.
If Continue = "N"
BreakRepeat
Endif
Database Options
-------- -------
The database "binary" file input/output options use two
questionnaire specified files. The files are opened with
either GetFile (read) or MakeFile (create/append). Read and
SkipBytes operate on the input file, while write operates on
the output file. There is currently no checking for
alignment of records in the files. Like the answer file, all
files are closed when exiting the questionnaire.
For the programmer types, these additional types allow
a wide range of possibilities for "programming" your own
SwiftBBS system and reading/writing your own configuration
files, nodelist, etc.
┌──────┐
│ 108 │
└──────┘
NewFile <filename>
This option creates a new file <filename> and allows you
to write data to the file with the Write function. If
the file already exists, it will be deleted prior to
creation. Each time this command is used, the
previously specified output file (via NewFile or
AppendFile) is closed prior to opening a new file.
NewFile Answers.dat
AppendFile <filename>
This option is the same as NewFile, except the file will
not be deleted prior to opening. AppendFile creates the
file <filename> if not existant. All subsequent Write
statements will append other information (via variables)
to the file. This is the same option as MakeFile
<filename> which will continue to function in this
version. Each time this command is used, the previously
specified output file (via NewFile or AppendFile) is
closed prior to opening a new file.
AppendFile Notes.dat
GetFile <filename>
This opens a file for input. This may be the same
filename as used in NewFile or AppendFile. You can
either read information or skip over fields. By using
Repeat/EndRepeat you can also simulate reading of
structures. Each time this command is used, the
previously specified output file (via NewFile or
AppendFile) is closed prior to opening a new file.
GetFile Notes.dat
Read <variable>
Reads the variable <variable> from the input file. The
number of bytes read is the declared size of the
variable. If the variable doesn't exist, the input
file is not read.
Note: Until other commands and options are available,
if the variable cannot be read from the input file
(i.e. end of file), the repeatcount is set to zero and
the current Repeat/EndRepeat loop is exited.
Read Name
Write <variable>
Writes the variable <variable> to the output file. The
declared size of the variable is the number of bytes
written.
Write Name
┌──────┐
│ 109 │
└──────┘
ReadNum <variable>
Reads the number from the input file and converts it to
a string in the variable <variable>. The number is read
from the next 2 bytes in the input file. If the
variable doesn't exist, the input file is not read.
ReadNum SecLevel
WriteNum <variable>
Converts the variable to a number and writes it to the
next 2 bytes in the output file.
Note: Non-numerical strings are always converted to
the value 0.
WriteNum SecLevel
SkipBytes <bytes>
Skips over <bytes> characters in the input file.
SkipBytes 36
Special Options
------- -------
DoType <num> <string>
DoType calls the menu type number <num> using the rest
of the string as the optional data. Caution must be
used to avoid overloading the stack or generating a
recursive operation.
DoType 6 ACCESS
Text
The Text keyword indicates that all lines following are
to be displayed literally, up to the next BreakText or
EndText keyword. This will allow you to format the text
more freely.
BreakText
This keyword instructs the questionnaire to skip all
lines up to the next EndText keyword. This may also be
used to include a block of comments.
EndText
This keyword signals the end of a Text block for Text
and BreakText commands, and is otherwise ignored.
┌───────────────────────────┬──────┐
│ Message editor interface │ 110 │
└───────────────────────────┴──────┘
SwiftBBS uses an external editor interface similar and
compatible with QuickBBS. This is so that editors written
for QuickBBS will work within SwiftBBS. SwiftBBS also makes
it possible to use other editors at the local console. For
local text editors not returning appropriate error codes, it
may be necessary to delete the work file in order to abort a
message. The work file for the editor is MSGTMP.
In supporting the quoting of reply text, SwiftBBS writes
the quoted text to the file MSGTMP. The quoted lines will be
prefixed with the quoting initials specified in the
configuration file. Preferred editors will allow you to
quote lines from this file into your message. Other editors
may have the quote lines dumped into the message. When using
the latter editors you will need to delete quote lines not
needed.
The command-line used to access the external editor is:
<editor> <commport> <baudrate> <time_limit> <inactive>
All of these parameters are automatically accessed from
the operating environment or the configuration file.
<editor> = editor specified in the configuration file.
<commport> = COM port specified in the configuration file.
<baudrate> = baud rate in use by the current caller.
<time_limit> = current caller's time left on the system.
<inactive> = time limit for inactivity from the caller.
When returning to SwiftBBS from the editor, the file
MSGTMP is imported into SwiftBBS as a message, and then
deleted. If nobody is on-line when returning to SwiftBBS,
the file (& message) is deleted. If the message doesn't have
more than 5 characters, it is also deleted. The editor's
return code (errorlevel) also indicates other activities
taken. An errorlevel of 1 indicates the user aborted the
message. Errorlevel 2 indicates that there was an inactivity
timeout. In both cases, the message is deleted. An
errorlevel of 0 indicates that message editing was
successful.
The SwiftBBS format for the local console varies from
this QuickBBS standard by substituting "MSGTMP" for the
commport. In QuickED the attempted conversion of this string
to a number results appropriately in a number 0. This change
enables you to use editors that expect a filename as the
first or only option. The time limit from the local console
also varies by using 60 minutes in local mode.
The message editor to use in a particular session can
also be specified on the command-line with the -w option.
┌───────────────────────────┬──────┐
│ Message editor notes │ 111 │
└───────────────────────────┴──────┘
┌────────────────────┬──────┐
│ SwiftBBS files │ 112 │
└────────────────────┴──────┘
SwiftBBS starts out small but can grow very quickly with
echomail. The message base itself can quickly grow to
several megs. In order to better maintain your system you
may want to regularly delete some un-needed files. This list
will help you determine what you can safely kill.
The files used or created by SwiftBBS programs will vary
with the version of the programs. Future versions may allow
you to bypass creation of some backup files. This is a
general list of the filenaming convention of SwiftBBS files,
listed by category.
PROGRAM FILES
Executable files ... Most program files will have the
*.EXE extension. This is what comes with the program
package. The program files in 0.25 include SWIFTBBS.EXE,
SWIFLINK.EXE, SWIFECHO.EXE, SWIFDUMP.EXE, SWIFPACK.EXE and
SWIFCNFG.EXE.
Documentation files ... The key documentation file
SWIFTBBS.DOC is the only other file included in normal
releases of the SWIFTBBS program.
Data files ... The files MSG*.BBS are the messagebase
data files. The five include MSGINFO.BBS, MSGTXT.BBS,
MSGHDR.BBS, MSGTOIDX.BBS, and MSGIDX.BBS. User records are
maintained in the USERS.BBS and LASTREAD.BBS files. Mail
import/export files include ECHOMAIL.BBS and NETMAIL.BBS.
All of these files are maintained by SwiftBBS programs.
Working files ... Some files created for use by
SwiftBBS programs are temporary, and automatically deleted
after successful completion of a program. If you see any of
these files, it's an indication of an incomplete program
execution, or something's wrong. These include Data files
(listed above) with a *.UPD extension, and MSGHDR.LNK.
Backup files ... If this is a beta version, there are
quite a number of backup files. While it's very rare that
I've needed to recover data with these backup files, they're
there to help smooth testing, and as a means of salvaging
some of the files. Backup files are created with a *.1ST
or *.BAK extension. These include LASTREAD.BAK, USERS.BAK,
CONFIG.BAK, AREAS.BAK, AREAS.1ST, ECHOORIG.BAK, ECHOORIG.1ST,
MSG*.BAK,
┌──────┐
│ 113 │
└──────┘
CONTROL FILES
Control files ... The key control file for SwiftBBS is
CONFIG.BBS. SwiftBBS will not operate without a valid
configuration. This file is created by SWIFCNFG. Other
control files can be created with a text editor, and include
AREAS.BBS, ECHOORIG.CTL, SWIFECHO.CTL, and KILLSTAT.BBS.
DISPLAY FILES
Display files ... Some of the basic display files used
in SwiftBBS include LOGO.ASC, WELCOME.A*, GOODBYE.A*. (see
also User's View)
Standard logon display files are displayed in the order
indicated, or at various prompts or options.
Selectable
Filename Description InfoCodes display
------------------------------------------------------------------
LOGO.ASC Displayed prior to logon NO NO
NOTFOUND.ASC Displayed if the user was not found
NEWUSER1.A?? Displayed to new users before logon
PASSWORD.A?? Displayed before entering new password
NEWUSER2.A?? Displayed to new users after logon
WELCOME.A?? Displayed following logon YES YES
SEC<##>.A?? Displayed to users with ## security
NEWS.A?? Displayed to all users after logon
GOODBYE.A?? Displayed following logoff YES YES
ABOUT.A?? Displayed as option for About...
┌──────┐
│ 114 │
└──────┘
HELP FILES
Help files ... Additional display files include several
sets of help files, all with the A* extensions.
Each opus-style menu bar contains a ?)Help option. The
help files are often included with the release, but may be
created or edited by the sysop. These files include
OPUSMAIN.A??, OPUSMAIL.A??, OPUSFILE.A??, OPUSINFO.A??,
OPUSNET.A??, OPUSETUP.A??, OPUSDEF.A??, and ABOUT.A??. If a
called textfile doesn't exist, a message is usually displayed
that the file is not found.
Filename Description
------------ -------------------------------------------------
OPUSMAIN.A?? Help file for the Main Menu
OPUSMAIL.A?? Help file for the Message Section
OPUSINFO.A?? Help file for the Information Section
OPUSNET.A?? Help file for the Network Section
OPUSFILE.A?? Help file for the File Section
OPUSETUP.A?? Help file for the Change Setup Section
OPUSDEF.A?? Help file for Default Message Areas
READHELP.A?? Help file accompanying the Read options
SCANHELP.A?? Help file accompanying the Scan options
EDITHELP.A?? Help file accompanying the internal editor
┌──────┐
│ 115 │
└──────┘
LOG FILES
Log (maintenance) files ... Log files are created by
several programs to enable you to keep a log of activity, or
report errors. These are not otherwise needed for
operation. The key activity log is SYSTEM.LOG. Other logs
include SWIFECHO.LOG and SWIFTBBS.ERR. All Swift* programs
log program errors in the file SWIFTBBS.ERR.
SwiftBBS programs maintain the activity log file,
SYSTEM.LOG that contains name, date, and time of user's
logging on to the system, information on some options
selected, invalid passwords, and method of logoff are also
included. The utility programs will also include entries
here indicating options used, etc.
29-Jan-92 07:17 -------------------------------------
29-Jan-92 07:17 SwiftBBS Version 0.33 (pt) System Log
29-Jan-92 07:17 -------------------------------------
29-Jan-92 07:31 ***********************************
29-Jan-92 07:31 Dana Bell on-line from console
29-Jan-92 07:31 Invalid Password: "dork"
29-Jan-92 07:31 Invalid Password: "wimp"
29-Jan-92 07:31 Invalid Password: "dork"
29-Jan-92 07:31 ACCESS DENIED!
29-Jan-92 07:31 Normal logoff, Dana Bell off line.
29-Jan-92 07:31 ***********************************
29-Jan-92 07:32 Joe Wms on-line from console
29-Jan-92 07:32 Name not in User file.
29-Jan-92 07:32 Re-entering user name ...
29-Jan-92 07:32 ***********************************
29-Jan-92 07:32 Joe Williams on-line from console
29-Jan-92 07:32 User Security Level = 1
29-Jan-92 07:32 Message #299 entered in area 1: LOCAL
29-Jan-92 07:33 Normal logoff, Joe Williams off line.
29-Jan-92 07:47 ***********************************
29-Jan-92 07:47 Joe Williams logging back on
29-Jan-92 07:47 User Security Level = 1
29-Jan-92 07:47 Normal logoff, Joe Williams off line.
A separate log file SWIFTBBS.ERR contains information
about system failure of SwiftBBS programs. SwiftBBS uses
this file to record key activities of SwiftBBS operation, but
the existance of this file may not indicate a system failure,
This file should accompany any bug-reports.
┌──────┐
│ 116 │
└──────┘
---------------------------------------------
SwiftBBS Version 0.28c (bbs/beta) Error Log File
---------------------------------------------
Error occured: 01/23/92 23:10:51:
SwiftBBS ref: 11, Can't read config.bbs
SwiftBBS module: swiftbbs.c 0.32 (pt)
System code: 2, No such file or directory
Error occured: 01/25/92 15:39:41:
SwiftBBS ref: 129, No room to pack
SwiftBBS module: swifpack.c 0.32 (pt)
System code: 0, Error 0
┌────────────────────┬──────┐
│ Acronyms │ 117 │
└────────────────────┴──────┘
In the computer field, acronyms are a way of life. The
same is true in computer messaging, but many of the
acronyms are generic (rather than technical) in nature. I
don't have a very extensive list of them, but I'll attempt
to list a few of the more common ones here.
Some of these will enable you to write quicker replies
while other will allow you to express some nice, sarcastic,
or not so nice opinion.
OTOH -- On the other hand...
BTW -- By the way...
IMO -- In my opinion...
IMHO -- In my humble opinion...
IMNSHO -- In my not so humble opinion...
RTM -- Read the manual...
RTFM -- Read the manual...
RTFS -- Read the specs...
FTFM -- Forget the manual...
┌────────────────────┬───────┐
│ Smiley faces │ 118 │
└────────────────────┴───────┘
The messages you read that have punctuation scattered
throughout the message may not be the result of modem line
noise. Much of the punctuation may simply be smiley/frowney
faces to reflect
:-) happiness or comedy,
:-( sadness,
:-o surprise,
:-% or sarcasm.
The following is a short list of some common and
not-so-common smiley faces. Interpretation of many smiley
faces is generally left to the reader, as the definitions are
not always universal.
BASIC SMILEYS
:-) Your basic smiley. This smiley is used to inflect a
sarcastic or joking statement since we can't hear voice
inflection on the computer.
;-) Winky smiley. User just made a flirtatious and/or
sarcastic remark. More of a "don't hit me for what I
just said" smiley.
:-( Frowning smiley or Sad Face. User did not like that last
statement or is upset or depressed about something.
:-I Indifferent smiley. Better than a Frowning smiley but
not quite as good as a happy smiley
:-> User just made a really biting sarcastic remark.
Worse than a :-).
>:-> User just made a really devilish remark.
IF YOU WEAR GLASSES
B-) User wears horn-rimmed glasses
8-) User is wearing sunglasses
B-) User wears sunglasses
B:-) Sunglasses on head
Q-) Glasses fully equipped with windscreen wipers
R-) Broken lens
::-) User wears normal glasses
┌───────┐
│ 119 │
└───────┘
ADVANCED SMILEYS
(-: User is left handed
%-) User has been staring at a green screen for 15 hours straight
:*) User is drunk
#-) User partied all night
[:] User is a robot
%-) User is cross-eyed
O :-) User is an angel (at heart, at least)
:-P Nyahhhh!
:-D User is laughing or smiling big
%-} User is drunk with laughter
:-X User's lips are sealed, or Kiss, kiss.
:-& User is tongue-tied
:-C User is really bummed
@= User is pro-nuclear war
*<:-) User is wearing a Santa Claus Hat
:-o Uh oh!
d8= User looks like a beaver wearing goggles and a hard hat.
:-9 User is licking his/her lips
[:-) User is wearing a walkman
<:-I User is a dunce
K:P User is a little kid with a propeller beanie
@:-) User is wearing a turban
The invisible smiley (anti-social)
:-{) User has a mustache
┌───────┐
│ 120 │
└───────┘
:-{} User wears lipstick
{:-) User wears a toupee
:-#) Bushy Moustache
:-:) First moustache
}:-( Toupee in an updraft
:-7 User just made a wry statement
:-* Oops shouldn't have said that...
or User just ate something sour
:-)~ User drools
:-~) User has a cold
:-8( condescending stare
:'-( User is crying
:'-) User is so happy, s/he is crying
:-@ User is screaming
:-# User wears braces
:^) User has a broken nose
:v) User has a broken nose, but it's the other way
|-I User is asleep
|-O User is yawning/snoring
|^o Snoring
':-) User accidentally shaved one of his eyebrows
:-Q User is a smoker, (or sticking out his tongue)
:-? User smokes a pipe
:-'( User has a cold
:-B Buck teef
: >) User has a big nose
┌───────┐
│ 121 │
└───────┘
HOBBIES
(:)-) User likes to scuba dive
O-) Another Scuba Diver
(V)=| User is a pacman champion
E-:-) User is a Ham radio operator
=:-) User is a punk rocker
=:-( (real punk rockers don't smile)
NATIONALITIES AND PROFESSIONS
8-#) Professor
[:|] User is a robot
_:^) User is an indian
|-) User is Chinese
~:-) User is an American Indian
(-: User is Australian
<|-) User is Chinese
<|-( User is Chinese and doesn't like these kind of jokes
C=:-) User is a chef
?:-) A philosopher
:-[ User is a Vampire
:-E Bucktoothed vampire
:-F Bucktoothed vampire with one tooth missing
┌───────┐
│ 122 │
└───────┘
ABBREVIATED SMILEYS
Note: A lot of these can be typed without noses to make
midget smileys.
:) Midget smiley
;D Big grin
:I Hmmm...
:( Sad
:[ Real Downer
MORE ADVANCED SMILEYS
..-) Sole Fish (Sick Huh!)
8) User is a frog
8+E Nasty monster
8:-) User is a little girl
8<- Mosquito
9-) Monocle
:+) Cannabal
:-(*) User is getting sick
:-)+< Little man
:-)-{8 User is a big girl
:-)8 User is well dressed
:-)8+< Work it out!
:-> Smirking
:%) User has acne
:-O Far out
:-T Keeping a straight face
:-V Shouting
:-P User is sticking out tonge
:-W Speak with forked tongue
:-[] What a square!
:-v Speaking
:-| No expression face
:-} Face with pretty lips
:< ) User is stuck up
:=) From Fiji
:B) My what big nostrils you have
:C) Nose ring
:I) Ugg
:O) Silly face
:~) User needs a nose job
;-) Sly Wink
┌───────┐
│ 123 │
└───────┘
<:-) Smilie II
@-) User is a cyclops
K-) racest
O-) Cyclops
Q:-) User is a new grad
X-) Another monster
}:-) User parts his hair in the middle
.-) User only has one eye
,-) Ditto...but he's winking
:-0 smiley orator
:-? smiley smoking a pipe
$-) 'money is his eyes'
8-|| A cadaver (thanks, LeStat)
8<|| A skull
:@) A pig:
C=}>;*{)) Mega-Smiley... A drunk, devilish chef with a
toupee in an updraft, a mustache, and a double chin
(EDFH?)
}:^#}) another mega-smiley: updrafted bushy-mustached pointy
nosed smiley with a double-chin
*!#*!^*&:-) a schizophrenic
:-) ... :-( ... :-) ... :-( ....
a manic depressive
PERSONALITY AND CELEBRITIES
*<|:-) User is Santa Claus
+O:-) User is the Pope
+:-) User is the Pope or holds some other religious office
-:-) User is or admires mr T
5:-) User is Elvis
:-o Mr Bill
(8-o Another Mr. Bill?
:-\ Popeye smiling
;- \ Popeye gets his lights punched out
=):-) User is Uncle Sam
4:-) User is George Washington
=|:-) User is Abe Lincoln
.-) One eyed Jake
P-) One eyed Jake again
:-=0 Adolph Hitler
;-$ H. Ross Perot (money talks)
:-) Wilt Chamberlin
:-) Willie Shoemaker
*:o) Bozo the Clown!
┌───────┐
│ 124 │
└───────┘
###
:o) another Bozo the Clown:
###
###
#:-) Bon Jovi
###
#
:-) Ed Koch
#
┌────────────────────┬──────┐
│ Afterward │ 125 │
└────────────────────┴──────┘
While SwiftBBS programs are still in the "development"
stage, most of the preliminary releases have been well tested
and work reliably. However, they aren't idiot-proof and have
areas where needed features are missing.
Why SwiftBBS?
One of the main reasons for writing SwiftBBS was to use
it as a project from which to learn more about the C
programming language. I've learned quite a lot about
algorithms, databases, and conversions of all types. At the
writing of this documentation, most modules in SwiftBBS are
original. The only exception is the (AT&T) public domain
version of getopt. Getopt is used here in order to aid in
the promotion of a consistent commandline interface.
A second reason is so I'll have my own BBS program. By
having "my own", I don't have to depend on others for a
dependable BBS system. By having "my own", I can readily
make improvements, modifications, or bug-fixes and not have
to wait on someone else. By having "my own", I can give it
away. Prior to this program I don't know of any free BBS
programs based on a database style message base.
The third (& key) reason is so that I can use it (and
other programs) to peak the interest of prospective
employers.
SwiftBBS is a freely available program. Since BBS
operations are basically hobbies, even with good programs,
there's not enough money to be made in shareware writing BBS
programs, so why try to profit from it. The opportunity to
learn and participate in all the echomail conferences is
profit enough. This might also be thought of as my payment
for use of other public domain or free software.
If you can use it, I'm happy. If it helps you learn
from, communicate with, encourage, or help others, I'm
happy. If it helps you build something worthwhile for
others, I'm happy. If you choose to use your skills to write
programs in the same spirit, I'm happy.
But, if your goals are more toward destructive
activities, manipulating or dominating others, you don't have
the basic skills required to operate SwiftBBS. If you want
to tear down something, use some other program.
┌────────────────────┬──────┐
│ Worksheets & Notes │ 126 │
└────────────────────┴──────┘
┌────────────────────┬──────┐
│ Worksheets & Notes │ 127 │
└────────────────────┴──────┘
┌────────────────────┬──────┐
│ Worksheets & Notes │ 128 │
└────────────────────┴──────┘
┌────────────────────┬───────┐
│ Index │ 129 │
└────────────────────┴───────┘
*.A?? . . . . . . . . . . 46 Dedication . . . . . . . . 1
*.ANS . . . . . . . . . . 46 Default Message menu . . . 29
*.ASC . . . . . . . . . . 46 Directory structure . 83, 85
*.AVT . . . . . . . . . . 46 Echo areatag . . . . . . . 18
.ASW . . . . . . . . . 49, 64 Echo,Echomail . . . . . . 32
.Q-A . . . . . . . . . 49, 64 ECHOORIG.CTL . . . . . . . 19
Access . . . . . . . . . . 39 Electronic mailbox . . . . 32
Acknowledgements . . . . . ii Errorlevel . . . . . . . . 20
Acronyms . . . . . . . . 117 EXITINFO.BBS . . . . . . . 14
Advanced SwiftBBS . . . . 54 External editor . . . . . 42
Afterward . . . . . . . 123 File Attach . . . . . . . 32
Aka . . . . . . . . . . . 16 File Request . . . . . . . 26
Alt-functions . . . . . . 53 File Section . . . . . . . 26
ANSI.COM . . . . . . . . . 22 FilesPath . . . . . . . . 71
ANSI.SYS . . . . . . . 20, 22 Full-scrn edit . . . . . . 28
Appendices . . . . . . . . 95 GOODBYE.A?? . . . . . . . 47
Applications . . . . . . . 80 Group . . . . . . . . . . 41
AREAS.BBS . . . . . . 19, 72 Help files . . . . . . . 114
Areatag . . . . . . . . . 18 Home messaging . . . . . . 80
ASCII . . . . . . . . . . 46 Index . . . . . . . . . 129
AVATAR . . . . . . . . . . 23 InfoCodes . . . . . . . . 99
Avatar support . . . . . . 21 Information Section . . . 27
Batch file(s) . . . . 89, 92 Installation . . . . . . . 11
Baudrate . . . . . . . . . 20 Inter-office . . . . . . . 80
BBS Identification . . . . 13 Interfacing . . . . . . . 83
BBS network defaults . . . 16 Internal editor . . . . . 42
BBS overview . . . . . . . 84 Intra-office . . . . . . . 80
Beta honors . . . . . . iii Introduction . . . . . . . 2
BINKLEY . . . . . . . 87, 91 Jump Start . . . . . . . . 11
BINKLEY.CFG . . . . . . . 87 Keystroke summary . . . . 44
BINKLEY.EVT . . . . . . . 87 KILLCOUNT . . . . . . . . 76
BTCTL.EXE . . . . . . . . 87 KILLSTAT.BBS . . . . . . . 76
Bugs, reporting . . . 5, 79 Limitations . . . . . . . 9
Bulletin creation . . . . 63 LIMITS.CTL . . . . . . . . 60
Bulletins . . . . 24, 30, 48 Links . . . . . . . . . . 39
C:\POINT . . . . . . . . . 85 LOGO.ASC . . . . . . . . . 46
Change Setup Section . . . 28 Logon . . . . . . . . 22, 46
Chat mode . . . . . . . . 53 Mail Overview . . . . . . 70
Command language . . . . 102 MailPath . . . . . . . . . 71
Command-line options . . . 20 MAIN Menu . . . . . . . . 24
Compatibility . . . . . . 9 Main Node Address . . . . 16
Computer Based Messaging . 2 Maintenance files . . . 114
CONFIG.BBS . . . . . . . . 12 Making the point . . . . . 85
CONFIG.SYS . . . . . . . . 22 MAXKEEP . . . . . . . . . 76
Contents . . . . . . . . iv Menu editing . . . . . . . 55
Control-F . . . . . . . . 47 Menu planning . . . . . . 58
Control-K . . . . . . . . 47 Menu Type . . . . . . . . 57
Custom menu . . . . . . . 24 Menu Types . . . . . . . . 96
Custom menus . . . . . . . 55 Menupath . . . . . . . . . 14
Custom versions . . . . . 81 Message boards . . . . . . 18
┌───────┐
│ 130 │
└───────┘
Message database . . . . . 2 Quoting string . . . . . . 40
Message editor . . . . . . 21 Registration . . . . . . . 4
Message editor interface 110 Relog . . . . . . . . . . 21
Message editors . . . . . 42 Replies . . . . . . . . . 39
Message Section . . . . . 25 Reply reading . . . . . . 39
Message-base . . . . . . . 80 Requirements . . . . . . . 6
Message-chain . . . . . . 39 Sample BBS setup . . . . . 91
Messaging . . . . . . . . 31 Sample message . . . . . . 34
Modem Busy String . . . . 15 SEC<##>.ASC . . . . . . . 47
Modem initialization . . . 15 Selected Reading . . . . . 38
MSGTXT . . . . . . . . . . 77 Smiley faces . . . . . . 118
Navigation . . . . . . . . 44 Source code . . . . . . . 10
Net . . . . . . . . . . . 41 Strip . . . . . . . . . . 71
Net/node . . . . . . . . . 40 SWIFCNFG . . . . . . . 12, 55
Netmail board . . . . . . 16 SWIFDUMP . . . . . . . . . 79
Netpath . . . . . . . . . 14 SWIFECHO . . . . . . . . . 71
Network Overview . . . . . 68 SWIFECHO.CTL . . . . . . . 71
Network Section . . . . . 26 SWIFECHO.LOG . . . . . . . 73
Networks . . . . . . . . . 82 SWIFLINK . . . . . . . . . 75
NEWS . . . . . . . . . . . 23 SWIFPACK . . . . . . . . . 76
NEWS.A?? . . . . . . . . . 47 SwiftBBS files . . . . . 112
NEWUSER1.ASC . . . . . . . 46 SWIFTBBS.ERR . . . . . . 114
NEWUSER2.A?? . . . . . . . 46 Swiftscan . . . . . . . . 25
Node search . . . . . . . 26 Sysop messaging . . . . . 51
Nodelist . . . . . . . . . 69 Sysop's View . . . . . . . 46
NODELIST.PTS . . . . . . . 88 System Setup . . . . . . . 12
Nodelists . . . . . . 88, 92 Terminal . . . . . . . . . 21
NOTFOUND.ASC . . . . . . . 46 Textfile editor . . . . . 52
Ommm . . . . . . . . . 87, 92 Textpath . . . . . . . . . 14
OMMM.CFG . . . . . . . . . 88 Threads . . . . . . . . . 39
OMMM.CTL . . . . . . . . . 88 Toni . . . . . . . . . . . 1
Opus Menus . . . . . . . . 24 TOP.MNU . . . . . . . . . 50
Opus mode . . . . . . . . 21 Trace . . . . . . . . . . 21
Opus style messaging . . . 20 Unattended . . . . . . . . 21
Opus-CBCS . . . . . . . . 24 User List . . . . . . . . 27
Origin line . . . . . . . 18 User maintenance . . . . . 60
OutBoundPath . . . . . . . 71 User's View . . . . . . . 22
PARSELST . . . . . 69, 88, 92 USERS.BBS . . . . . . 21, 60
PARSELST.CFG . . . . . . . 88 Utilities . . . . . . . . 68
PASSWORD.A?? . . . . . . . 46 WELCOME.A?? . . . . . . . 47
Point overview . . . . . . 83 Worksheets & Notes . . . 124
POINTFIX . . . . . . . . . 84 ZAVT . . . . . . . . . . . 23
QNL*.BBS . . . . . . . . . 69 Zone . . . . . . . . . . . 41
Questionnaire programs . . 64
Questionnaires . . . . . . 49
Queue . . . . . . . . . . 26
QuickBBSPath . . . . . . . 71
QUICKED.EXE . . . . . . . 13
Quickmenus . . . . . . . . 24
Quoting reply text . . . . 40
** Free Breakfast
..Free breakfast (a low-cost setup)